I'm quite a fan of functional programming, and since most of those langauges implement tail call optimization, you can recurse as much as you like :-P
However, practically, I have to use a lot of Java and use Python a lot too. No idea what limit Java has, but for Python I had actually planned (but have not yet done it) to implement a decorator which would tail call optimize the decorated function.
I was planning this not to optimize recursion, but mainly as an exercise in dynamically patching Python bytecode and learning more about Pythons internals.
Heres some itneresting links: http://lambda-the-ultimate.org/node/1331 and http://www.rowehl.com/blog/?p=626