Първи ден от месеца: SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0)
Последен ден от месеца: SELECT DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0))
Заменете стойност на променлива DateTime за GETDATE().
Получих това отдавна от тази много удобна страница който има цял куп други изчисления на дати, като "понеделник от текущата седмица" и "първи понеделник от месеца".