Two interesting techniques I came upon:
http://www.sqlteam.com/article/sql-sever-2005-using-over-with-aggregate-functions
Retrieve aggregate data using OVER(Partition by ...) rather than doing another join
http://weblogs.sqlteam.com/jeffs/archive/2007/06/12/60230.aspx
Using GROUP BY in some cases to avoid a self-join