Pobierz ostatni dzień miesiąca w SQL

Muszę uzyskać ostatni dzień miesiąca podany jako data w SQL. Jeśli mam pierwszy dzień miesiąca, mogę zrobić coś takiego:

DATEADD(DAY, DATEADD(MONTH,'2009-05-01',1), -1)

Ale czy ktoś wie, jak go uogólnić, abym mógł znaleźć ostatni dzień miesiąca dla danej daty?