(Second one today!) If you're using mySQL, the date and time functions will be extremely useful in this, expecially when it comes to sorting and limit (for pagination.) You'll have to fiddle with it, decide whether you want to offset by days or months or a combination of both, but start playing with these.
May2010 would actually consist of items dated from March 20, 2010 through to April 19th, 2010
// Get the DAYS from March 20 to May 1, store in $diff
select datediff('2010-05-01','2010-03-20');
--> 42 (days)
select your_date_field from your_table where your_date_field >= date_sub('2010-05-01',interval $diff day) and your_date_field <= date_add(date_sub('2010-05-01',interval $diff day),1 month) order by your_date_field desc limit $per_page;
... where $per_page is your per page limit, in which case you'll have a pagination scheme in place . . .
Should give you all the dates from March 20 to "one month later." The varying lengths of months are automatically calculated, including leap years.
The hard coded date '2010-05-01' can be a database field, and it will work as well on datetime types, but you may have to do some fiddling with where midnight lands.
Date and time functions [dev.mysql.com] (5.0 version, all about the same)