As mentioned earlier, the FIbonnacci sequence is a classic example of recursion.
...which even can be solved with a really simple loop.
Since the langugages in which we program are normally turing complete, there is as such nothing which can only be solved using recursion. A real example of recursion would be the one in which the iterative solution would not be too apparent and even when such a solution is found, would be too complex. Recursive descent parser, like Raye mentioned, Backtracking problems still stand as a good examples.
Graphical representations of some of them using applets here.