Documentation is a necessary evil for software developers. While C# and VB.NET have basic facilities for commenting code and embedding XML documentation into code, turning that into a more useful form is outside the realm of Visual Studio. These five applications can help you turn your comments and notes into proper documentation.
Sandcastle is probably one of the best known documentation generators for .NET, and it has the benefit of being open source. Unfortunately, Sandcastle is difficult to use on its own, prompting a small cottage industry of add-ons and helpers to make working with it easier. Even so, Sandcastle is a capable tool and a great starting point for turning your XML comments into documentation.
2: Document! X
Innovasys' Document! X handles a lot more than .NET documentation, including COM and database documentation. It is loaded with features, such as the ability to generate help files that integrate directly into Visual Studio's help; that is a must-have for developers writing libraries. Document! X may be one of the most expensive options around, but it could very well be worth the price for your team.
Another open source choice is Doxygen. Like Doc-O-Matic, Doxygen can handle a number of non-.NET languages. In fact, with its basis in the *Nix world, Doxygen's .NET support is rather limited (it supports only C#). That said, if you are working in a cross-platform environment, or with C# code under Mono, Doxygen may be a great choice. One unique feature is that it can produce LaTex output.
VSdocman adds an interesting twist to the documentation genre by including a Visual Studio plug-in that does comment editing directly inline. This comment editor is a big improvement over trying to do formatting and markup by hand in the XML comments. It also can automatically create basic comments based on the code itself. VSdocman is also fairly inexpensive compared to some of the other options.
Justin James is the Lead Architect for Conigent.