iPhoto can do this (it should be in your Applications folder). If you haven’t already imported your photos, open the Preferences window and select the Events pane. Choose Autosplit into Events: One event per week and check the Imported items from Finder checkbox. Then when you import your photos, whether from your camera or by dragging and dropping from the Finder, all the photos will be separated into Events based on the EXIF data: one per week.
Next, select the four or five events for each month and then click Events → Merge Events, and then rename the events to whatever you want. Repeat this for each month, and you’ll be good to go.
I realize that this will be a little tedious if you have a few years worth of photos, but I recommend at least trying the built-in solution before you dismiss it.
If you do decide to try something else or I didn’t describe what you’re looking for, though,
Google Picasa is often recommended. From my limited knowledge, it’s similarly capable—many prefer it—so look into that.