Hopelessly inefficient but I've always had a soft spot for this as a quirky solution to the problem:
SELECT [Month] = DATENAME(mm,SomeDateTime)
, Amount = SUM(SomeAmount)
FROM dbo.month_order_test
WHERE SomeDateTime >= '2010'
AND SomeDateTime < '2011'
GROUP BY
DATENAME(mm,SomeDateTime)
ORDER BY
CHARINDEX(DATENAME(mm,SomeDateTime), 'JanuaryFebruaryMarchAprilMayJuneJulyAugustSeptemberOctoberNovemberDecember');Tested in 2008