If you are a .NET developer I recommend checking out DocProject. It's an open source front end for the SandCastle documentation engine. Sandcastle picks up where NDoc left off, and is a Microsoft open source project that provides services for creating MSDN style HTML and compiled help. Unfortunately it's a bit of a bear to work with (lots of Xml configuration files, batch files etc).
This is where DocProject comes in. The basic process is to add a "DocProject" or "DocSite" to your solution, and then add references to all the other sites/assemblies in the solution into the DocProject. Then during a build, DocProject actually runs Sandcastle to create the doc.
I've only just played with it a little, and it's pretty easy to get setup and running, but the actual compilation of the help was pretty slow. It was running for >15 minutes on my Core 2 Duo notebook! After digging around a little, it seemed the issue was that I have some ArcGIS Server WebService proxies in one of the assemblies, and it was cranking out all the help doc for that - which is substantially larger than the actual code I was trying to document. Once done, the output is pretty good.
Combine this with GhostDoc, and there is no excuse for not having good developer API documentation for whatever you write.
Check it out at www.codeplex.com/docproject