The Open Source UML/MDA Platform
Modelling software usually comes in gradients - from the insanely complicated to the insanely easy like Google's SketchUp. StarUML is one of the former and is not recommended for beginners. However, it's free and once mastered, the results are extremely professional.
The key behind StarUML is an MDA (Model Driven Architecture) module which allows users to perform incredibly complex modelling. The reason is that MDA supports many important customization variables such as UML profiles, Approach, Model Framework, NX (notation extension), MDA code and document templates.
It's also very open to plugins. The developers have understood that many modellers need to be able to integrate third party plugins and StarUML provides a remarkably simple but powerful plug-in architecture. The developers claim that with this, anyone can develop plug-in modules in COM-compatible languages such as C++, Delphi, C# and VB.
The simplest and most welcome part of the program is the Diagram overview which allows you to see at a glance the sum total of your creation before it's finished. As far as free modelling programs go, this is very powerful but you'll have to be a seasoned pro to get the hang of it plus a decent programmer to develop the plugins.