I just let iPhoto do it. I use Faces and Events as well as keywords. I usually start a new Library every year. I keep archival copies of each year on a separate hard drive and backup each one to DVDs.
I tend to do it by “roll”. Whenever I download from a card, it gets a name like “Spring, 2011.” If there was a special subject, it might get a heading like “Snowy Owl, March 2010”. But it’s not a great system if you want to find something in a hurry. And I’m really bad at weeding out the bad pictures and keeping stuff to a manageable size.