Before you start with technique you should know the application scope dead cold. What does the customer / business unit expect in terms of performance, and what are the critical areas of failure? Scott Hanselman had a great podcast regarding the subject.
Some of tidbits offered: don't use caching unless you have to; serving up files is faster than assembling fragments from a database; know how to handle peek server times; know what your peaks will be.
Again, know the scope of the usage first in order to know if you should scale.