I agree to an extent, I'd usually rather have well designed self-documenting code than awful code that's commented. But, especially with larger and more complex systems, it good to have documentation and comments too, so you can tell what the programmer was trying to do, and why. There's a limit to what you can infer from code alone, no matter how well designed it is.
Commenting for the sake of commenting is poor, however, commenting on the intent is a MUST. Simple easy to read code should not need comments. However, code the is odd/complex or is a 'hack' MUST have comments so the next guy can understand the 'intent/why' of what the code does.
After seeing a 200k LoC project we outsourced last year come back with 0 comments, I have to agree that it's better to be safe than sorry and require a certain level of commenting. In the end, that project literally got scraped, because even the people who wrote it were unable to maintain it a year later.