In addition to the other suggestions, make sure that:
1) Join columns are indexed
2) Indexes have the proper freespace and are reorganized / rebuilt as often as needed to keep them functioning well
3) Queries do not do functions on table columns unless absolutely necessary, esp. on indexed columns. For example, instead of:
WHERE YEAR(datecolumn) = 2008 AND MONTH(columnname) = 2
WHERE datecolumn >= '20080201' AND datecolumn < '20080301'
4) Tempdb has at least one data file per processor core
Since you have only one SAN drive, you cannot be using RAID 1 for logs and RAID 5/10 for data. This will affect your performance as well.
SQL DBA,SQL Server MVP(07, 08, 09) Prosecutor James Blackburn, in closing argument in the Fatal Vision murders trial:
If in the future, you should cry a tear, cry one for them [the murder victims]. If in the future, you should say a prayer, say one for them. And if in the future, you should light a candle, light one for them.