Once upon a time, many many moons ago, when most of my cabinets were either on the street earning money or not made yet, I spent some time DJing 4 nights a week with a professional outfit where I learned some important stuff.
Weddings are the WORST -- there are a wide range of people to entertain, anybody remotely related to the wedding party feels that they are entitled to hear what they want and most people's musical selections suck (everybody wants to hear their own favourite or special song). My philosophy as a DJ was to build a groove (for lack of a better term) through the course of the event and play whatever added to the groove. If you listen to everybody who has something to say, then you will end up with a disjointed, poorly sequenced set (think CrapMAME) that results in empty dance floors.
In the past couple of years, I have programmed music for friends and family weddings with great results (e.g. the bride and groom and families were pleased and everybody danced). Programming in advance is tougher because you can't adjust on the fly, but easier because you don't have to accomodate everybody who wants to hear their song and hear it now.
It is absolutely true that the bride is the one you need to please. Even if her taste in music sucks. The groom is a distant second, but if you make him happy then you get the tip. Everybody else can suck rocks, although you may not be popular.
The first thing I do is get the list of "must haves", including desired scheduling. So, music for introductions, first dance, parents' dances, special dances, etc. Then I choose (with the bride/groom's help) the last few songs (gotta finish strong). This hits the important spots and lays out a timeline which just needs to be filled in. Take special note of planned "interruptions" like cake cutting, bouquet tossing, garter tossing, drunken stupidity, etc.
Once I have this rough time line, I go through the list of "music they like" and select stuff that "fits", is danceable and sequence it in a manner that "builds the groove". Remember that the groove needs to go up AND down, or else people will collapse from exhaustion or be upset about the lack of groping opportunities.
Then I fill in the gaps. Typically I try to do this with generic/popular dance music from a wide range of periods. People like to recognize the music more than they will appreciate the music. A song may be great, but if people recognize it, then they are more likely to dance/enjoy. This is an opportunity to exercise "good judgement over good taste". I almost never play stuff that comes from my personal music collection -- I like to think I have good taste, but people want to hear what they know.
Admittedly, a lot of this process comes from instinct/experience, but most of it is just listening, changing the sequence and listening again. I typically spend 10 hours to sequence an hour of music (if I were DJing live, then that number falls drastically as I can react and adjust as I go). I almost always have an extra set programmed to fit in just before the final few dances, but have never ended up needing it.
As a rule, unless requested, I do not throw in the gimmick songs like the chicken dance. Only once have I been asked for the Macarena. Check those with the B&G beforehand and, if no interest, forget 'em.
There is, somewhere, a box set of the top 100 stock wedding songs that may provide some tracks (can't remember the name right now).
One song that I think should be played is Michael Jackson's Don't Stop Til You Get Enough. I hate that bloody song and I hate Michael Jackson with a passion, but everybody dances to it. I have played it more as a DJ than any other song. It's one of those things that seperates good judgment from good taste.
I'll see if I can dig up the playlists from the last few weddings I did. I'm pretty sure I deleted them, but I'll have a look.
Oh ... almost forgot ... unless introducing somebody or explaining a special dance, the DJ should not talk on the microphone. 'Nuff said.
Cheers