Waits work for identifying 99% of the performance issues, but there are a few cases where waits don't work.
There are some areas which are missing wait instrumentation such as (from Richard Powell):
Waits don't measure log on time so it's important to know the statistics logons per second.
When processing rollback, if it doesn't involve IO, it will simply show up as CPU time. Be sure and monitor the statistics "consistent changes".
Here is an article by James Morle on a case where waits didn't work
And the other side of the coin from Tanel