No SQL Server 2012, você pode usar EOMONTH (Transact-SQL) para obter o último dia do mês e, em seguida, usar DAY (Transact-SQL) para obter o número de dias do mês.
DECLARE @ADate DATETIME
SET @ADate = GETDATE()
SELECT DAY(EOMONTH(@ADate)) AS DaysInMonth