I use doxygen mixed with dot for rendering the UML. Mostly for looking over the layout of the code after it's written to make sure there aren't any lines/dependencies that there shouldn't be. The nice thing is that this leaves you with both an HTML doc and UMLs as PNGs. I haven't found any great tools for creating UMLs ahead of code... like for many here, that seems like a recipe for outdated/mismatched code to UML in the long run.