Obtén el último día del mes en SQL.

Necesito obtener el último día del mes dado como una fecha en SQL. Si tengo el primer día del mes, puedo hacer algo como esto:

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

Pero, ¿alguien sabe cómo generalizarlo para poder encontrar el último día del mes para una fecha determinada?