Some problems, such as walking a tree structure (walking, say, an entire directory structure, as opposed to, say, searching for a specific B-Tree node), are ideally suited to using recursion; the non-recursive equivalents often simplesimply add the complication of managing your own stack.
In these cases, recursion is the best, simplest solution and easiest to understand.