Generar series de intervalos de semana para un mes dado

En una base de datos Postgres 9.1, estoy tratando de generar una serie de semanas para un mes determinado pero con algunas restricciones. Necesito todas las semanas para comenzar el lunes y cortarme cuando empiecen o terminen en otro mes.

Ejemplo:

Para febrero de 2013 quiero generar una serie como esta:

         start
------------------------
2013-02-01 00:00:00+00
2013-02-04 00:00:00+00
2013-02-11 00:00:00+00
2013-02-18 00:00:00+00
2013-02-25 00:00:00+00

La consulta que tengo ahora se ve así:

SELECT GREATEST(date_trunc('week', dates.d),
                date_trunc('month',dates.d)) as start
FROM generate_series(to_timestamp(1359676800),to_timestamp(1362095999), '1 week') as dates(d)

Esta consulta me da las primeras 4 semanas, pero falta la semana del 25. ¿Es posible conseguir la última semana?

Respuestas a la pregunta(2)

Su respuesta a la pregunta