Las versiones de Visual Studio .NET parece ser que ya traen incorporadas una herramienta para este proposito. Para el resto de lenguajes, C++, Java, Delphi & cia., el que mas popular me viene a la cabeza, popular y de los mejores, es
http://www.doxygen.org/' target='_blank'>Doxygen. Hay otros tantos pero ahora mismo (y a estas horas xDD) no me acuerdo

Salu2...
P.D.: Si alguno programa en VB6, como yo

, que sepa que existe una herramienta gratuita para documentar el codigo al estilo documentacion de DirectX y que da resultados muy decentes (requiere retocar despues un poco con un editor web pero te ahorra un infierno a la hora de documentar),
http://vbdox.sourceforge.net/' target='_blank'>VBDox. Un ejemplo de documentacion hecha con vbDox la que viene con la dx_lib32 por ejemplo.