Close to my heart. There is a freely available plug-in to Rational Rose that allows reverse engineering of Perl code into a rose model as well.
When you see a whole system modelled in UML and then in front of you the system realized in code you go 'wow, how is this possible?' Then after a while you start mumbling about use cases and statechart diagrams in your sleep, and doing sequence diagrams to map your actions to the grocery store. But seriously UML is a big win for large systems. Its nice to see everything that needs to be done up front and getting a sense of scale.
UML without a good CASE tool is a nuisance though. It means white boards and digital cameras (or really expensive white boards). When you have a good CASE tool (such as Rose IMO) and its backed up by a good version control system then I think you've got a sound backing for solid development. Anyway, just my 2cents.