翌月の月初日から 1 日引きます。
db=# SELECT DATE_TRUNC('month', now() + '1 months') + '-1 days';
?column?
------------------------
2010-02-28 00:00:00+09
(1 row)任意の日付指定で時間も23:59にしたいならこっち
db=# SELECT DATE_TRUNC('month', date('2010-04-30')) + '1 months' + '-1 seconds';
?column?
------------------------
2010-04-30 23:59:59+09
(1 行)ネタ元