I\'ve found some good examples of functors on SO like this one, and all the convincing examples seem to use state in the class that defines operator().
One reason is run-time efficiency. If you pass a pointer to a function, the compiler has to be unusually clever to produce code for that function inline. Passing an object that defines operator() makes it much easier for the compiler to produce the code inline. Especially for something like sorting, this can increase speed quite substantially.
In C++11, another reason to use a class is for convenience -- you can use a lambda expression to define the class.