The problem is if you have records from previous years, then this means you have possibilty to have rows from December,2008.Then you will have a list beginning from 1 to 12
Perhaps the query might have a starting date criteria or a year criteria for OrderDate
SELECT
DISTINCT MONTH(OrderDate) AS [Month]FROM
Sales.SalesOrderHeaderWHERE
OrderDate < GETDATE() and YEAR(OrderDate) = YEAR(GETDATE())ORDER
BY [Month]