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
write:
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) A socialist is someone who will give you the shirt off *someone else's* back.