On a side note to all of this commenting stuff, one other thing I use comments for is refactoring or rewriting code. Whenever I have to maintain an app that was not developed well, has no external documentation, is not self-documenting, and is not commented well (which describes every app I've been hired to maintain), whenever I have to work in a certain module the first thing I do is go in and start commenting the code. This forces me to take the time to understand the mess step by step, and since it's easy to get overwhelmed by 1500 line methods that do 100 different things with no comments, it keeps me on track. Certainly there are other ways to understand code, but that really works well for me personally.

"If you can't describe it, you can't code it or maintain it," is probably my mantra and the reason I'm so hot on using comments. Of course, I realize that there are other was to display understanding besides being able to write comments, but that is a nice litmus test I use on myself.
_________________________
-Jeff
Rome did not create a great empire by having meetings; they did it by killing all those who opposed them.