Unfortunately I have to work with other people, systems written years ago that have severe cruft issues and bolted on bandaids from years of 'must ship now' bugfixes, and external APIs whose authors have questionable coding practices - or who simply cannot write clean APIs due to language limitations (e.e. most C APIs)
So yes, I will sprinkle several comments in my code where they increase readability. In some cases this ends up being a "what this code is doing" comment, but in most cases it's a "we have to do it this way because X" or "this has to be in this order because of dependency X, Y, and Z". Heck, sometimes I've even run into a compiler or library bug (yes, they do exist, in fact I ran into one yesterday) and so have to put in a comment saying "this looks ugly/isn't what you expect, because of bug documented at X".
I write shipping code, not academic code. And shipping code needs comments
![:) smile.png](http://public.gamedev5.net//public/style_emoticons/default/smile.png)
Oh, and a lot of template code needs comments. I challenge you to write maintainable template meta-programming code in C++ that is readable by a non-expert (or even yourself in six months) without comments.