No SQL Server 2012, você pode usar a função EOMONTH.
Retorna o último dia do mês que contém a data especificada, com um deslocamento opcional.
Sintaxe
EOMONTH ( start_date [, month_to_add ] )
Como... posso encontrar o último dia do mês para qualquer data?
SELECT EOMONTH(@SomeGivenDate)