Da SQL Server 2012 puoi utilizzare la funzione EOMONTH.
Restituisce l'ultimo giorno del mese che contiene la data specificata, con un offset facoltativo.
Sintassi
EOMONTH ( start_date [, month_to_add ] )
Come... posso trovare l'ultimo giorno del mese per una determinata data?
SELECT EOMONTH(@SomeGivenDate)