Desde SQL Server 2012 puede utilizar la función EOMONTH.
Devuelve el último día del mes que contiene la fecha especificada, con un desplazamiento opcional.
Sintaxis
EOMONTH ( start_date [, month_to_add ] )
¿Cómo... puedo encontrar el último día del mes para una fecha dada?
SELECT EOMONTH(@SomeGivenDate)