I was asked this question twice this week so far, so this is my take on answering the question...
As I have told many couples, picking your First Dance on your wedding day should be a moment that you already shared together. DO NOT pick your song from a list of the "Best First Dances" that you found on the internet. I will run into a couple a few years after their wedding and ask them what their first dance was and it is surprising that they don't remember (because they have no connection with the song they chose).
That is why it should be a song that comes from the first time you slow danced together, the first time one of you said "I love you," or a concert that you went to. If you think hard enough, you should already have a song. Pick a moment or a memory that has meaning to you. Now, what was playing at that time?
When should you have your first dance played? You have really only two choices. After your grand entrance or after dinner. Both are good, but it seems that if you took ball-room dance lessons than after your entrance would be an elegant and good time to dance, Especially when the groom swirls the bride around to start dancing; you will get the "WOW" moment from your guests. On the other hand, if you didn't take lessons, then directly after dinner would be a good time to do your first dance and then start the rest of the dancing for all your guests.
We have also done "Memories Photo Montages" that have played while both of you take the floor. It tells your story and adds your personalities into the dance. This could also be done with the Father/Daughter dance and the Mother/Son dance. You could even add our “Dancing on a cloud experience” with a dry-ice machine.