One argument for extensive commenting is that when we program, we all have different styles and methods. Where I work, two or three of us could be sharing the same project and if I've been hacking away for week and I hand it over, they wouldn't have a clue where I'm coming from.
I tend to comment when I have something to explain to the person using the code. They know how to program else they wouldn't be looking at code.
//check to see if variable is X
if ($variable == "x"){
return true;
}else{
return false;
}
I wouldn't go overboard with these comment but if I think I have something to explain, then I do so