Flogging our dead horse, in practical terms, an object's "state" could be considered its internal variables, and the values those variables have. Functors, being function objects, can have variables which can have values, and those values (i.e. the state) can even persist between uses of the functor.
A pure function is usually defined on two key conditions:
1. The same input will always produce the same output.
2. The function has no side-effects that change some external state. (Although, I've heard some people suggest that a function can still be pure if it modifies its input arguments...)
For example, mathematical functions are the easiest to understand here. sin(x) will always produce the same result for some input value of x. However, a function like get_current_time() is not pure, because it depends on some state external to the function's input itself -- in this case, the current system's time. Calling the function at 3:00 will produce a different result than calling the function at 11:00. But sin(pi) will always be 0.
C++ is not a functional programming language, so you can easily have state in normal functions through use of global variables or static variables. A "functor" in C++ is basically just a class where you overload the () operator to act like a function. Actual functional programming languages like Haskell have a much more mathematical meaning that I don't really understand :)