In SQL Server 2012 è possibile utilizzare EOMONTH (Transact-SQL) per ottenere l'ultimo giorno del mese e quindi utilizzare DAY (Transact-SQL) per ottenere il numero di giorni del mese.
DECLARE @ADate DATETIME
SET @ADate = GETDATE()
SELECT DAY(EOMONTH(@ADate)) AS DaysInMonth