I think the golden rule applies here; do unto your code what you wish your predecessor's had done to their code. If you write your own code, maintain it yourself, and never have anyone else work on it, then do whatever you want. Heck, use no punctuation, indentation*, or even carriage returns if you can help it.
However, there seem to be two camps; those who see the value in comments, and those who don't. Comments wont detract from those who don't like them (besides more trivial annoyances like wasted screen space), while the lack of comments may significantly hamper those who would appreciate it. It seems safer & more efficient to comment and make understandable code accessible to all, instead of saying that "good programmers" shouldn't need it, and raise the requirements unnecessarily for the maintainability of your code.
Used properly, comments can help. So just find a helpful way to do it. My mindset is that I write for the next guy, assuming that someone's going to hand him the code with an explanation of what he should be doing, and the comments will help guide him. They help the same way as chapter titles. Chapter titles are unnecessary and often can be completely removed without altering the story. But try to skim through a book and find what you're looking for w/o titles, and it's a pain.
I just jumped into an existing project that a genius (really) friend of mine started. He's very smart, but not as experienced a programmer. And the #1 pain point right now is lack of comments. Some of the code is plain spaghetti. That's fine, I'll just refactor it. But since there's no comments describing *why* it's doing what it's doing, I can't yet refactor.
Other things work just fine. But again, lack of comments prevents me from understanding what it's doing without understanding the entire context of the entire system. This is bad design, but that's the point - perfect code may not need comments, but none of us need worry about that (since we wont be working on perfect code anytime soon). It's not a crime to have rough code because the system is still organically growing. It is to have tons of uncommented stuff jumbled together.
Help me to help you. Help your successors maintain your crap. Comment your code. Make things easier on people (I'll put a 1 liner describing this section, since it's a little tricky), rather than harder (Really smart people will understand this, and I don't care about the others).
* Python users: find another way to obfuscate.