É sempre bom compartilhar pequenas funções ou comandos que ajudam no cotidiano do desenvolvedor, neste caso é uma série de comandos que podemos utilizar no SQL Server para manipulação de datas, onde precisamos calcular o primeiro e último dia mês.

...
DECLARE @mydate DATETIME

SELECT @mydate = GETDATE()
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),102) ,
'Último dia do mês anterior'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),102) AS Date_Value,
'Primeiro dia do mês atual' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),@mydate,102) AS Date_Value, 'Hoje' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),102) ,
'Último dia do mês atual'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),102) ,
'Primeiro dia do próximo mês'
GO

Fonte: http://blog.sqlauthority.com/2007/05/13/sql-server-query-to-find-first-and-last-day-of-current-month/

Boa implementação a todos.