Gaphor is decent. It has some limitations and bugs, but it is the least annoying of UML editors out there. However, as Dia, it cannot generate code, I am just listing it in case you ever need a straight UML diagram creation tool.

After a longe search in desktop apps I decided to go web, now I'm using Cacoo, which allow not only uml drawing but a lot of different drawing (like network topography, general stuff, etc). It's free and allow to share with friends and concurrently editing.

I use Papyrus, a suite developed by the Commissariat à l'Énergie Atomique in France that is today available as a plug-in to Eclipse. It is the most advanced open source modelling tool I am aware of and supports UML2 almost entirely. Broad description:

Papyrus is aiming at providing an integrated and user-consumable
environment for editing any kind of EMF model and particularly
supporting UML and related modeling languages such as SysML and MARTE.
Papyrus provides diagram editors for EMF-based modeling languages
amongst them UML 2 and SysML and the glue required for integrating
these editors (GMF-based or not) with other MBD and MDSD tools.

Most importantly, Papyrus supports Model-Driven Development (MDD), being a pretty able tool to develop Domain Specific Languages. On this regard, Papyrus seems to be the only open source tool supporting the Model-Driven Architecture (MDA) pattern issued by the OMG. With a code generator such as Acceleo you end up with a full MDD stack - from which you may even create your own DSL plug-ins.