CAST Software is a good one. It's user interface isn't very friendly but it does a whole lot of stuff. I switched from Embarcadero's products to CAST a little over a year ago. Embarcadero's tools started getting real buggy after version 5.1.
CAST can reverse engineer about any language and can run reports and impact analysis on changes throughout an entire application. This has been very helpful when I make db changes because our .NET and java developers always forget to update code to handle my changes.
http://www.castsoftware.com