value_type is used in templated functions and classes where it is the only way to determine the type used by a template parameter.

Code:
template <typename T>
T::value_type Function(const T &t)
{
    T::value_type i;
    ...

    return i;
}