StarUML is an open source project to develop fast, flexible, extensible, featureful, and freely-available UML/MDA platform running on Win32 platform. The goal of the StarUML project is to build a software modeling tool and also platform that is a compelling replacement of commercial UML tools such as Rational Rose, Together and so on. (from: old projects of StarUML, this project has been discontinued).
This tool supports UML 2.0, Model Driven Architecture, and Plug-in Architecture (C++, Delphi, C#, VB, ... modules). As your request, StarUML has C# Profile, Code Generator and Reverse Engineer. You can generate documentation automatically using Microsoft Office. It's free. See here.
The good news: StarUML starts the new version project (since long time no updates).