It's the name of the game!
Cache when you must, but ALWAYS have a tuned database with good indexes, and NEVER execute code that is inefficient!
Check out Glacier Park Chat as a great example of performance in action.