Olá,
Depende do que você quer fazer com UML.
Se você está usando UML para passar idéias, dizer como uma aprte do sistema será implementado, fazer rascunhos, etc. (tendência de metodologias ágeis defendida pelo Fowler), qualquer desenhador de diagramas está excelente, até mesmo um quadro branco e uma máquina digital.
Se você quer usar UML à mdoe ensinada nas aulas normais de engenharia dde software, como ferramenta para gerenciar e criar código automaticament,e vai precisar de algo mais robusto, uma ferramenta CASE como o Rose, Together, Magic Draw ou Poseidon. Essa abordagem é defendida pela IBM/Rational e muitas outras emrpesas engessadas.
Se você quer utilizar UML como linguagem de programação, utilizando conceitos de MDA, vai rpecisar de algo como o AndroMDA. Essa abordagem éd efendida por todo mundo, mas é meio sci-fi ainda (deve melhorar com a UML 2.0).
[]s