Once I was assigned to a project which was about adding couple new features to the existing Java based web application. Because it was a matter of just couple simple features there was no chance for rewrite.
Unfortunately, the code base came from a client without any documentation and the code itself wasn't commented too well. The original developers had left the client company so there wasn't too much knowledge available. To spice up thing structure of the user interface was stored in the DB.
We managed to solve the rather interesting logic with debugger, some DB visualizing tools and plenty of mind map/relationship drawings on the paper. This was then documented in our wiki. But for some reason we did not create extensive test coverage to protect us - maybe the reason was that nobody really knew how the application and its business cases should work...
How people have dealt with similar cases? Are there any specific tools for understanding application or its creator's logic?