Set a date
Pick a date where the birthday boy/girl will have no conflicts. While it's ideal to select the actual date on that person's birthday, throwing it a few days earlier will add an extra element of suprise.
Make a guest list and send out the invitations to them. Make sure that it is clear that it's a suprise and set the start time of the party 30 minutes prior to the expected arrival of the birthday boy/girl.
Decorate the party area with balloons, streamers and a birthday banner. Buy some chips, soda, snacks, and other food/beverages.
Appoint an assitant to divert the birthday boy/girl with another activity until the time of the party where the assitant will bring the birthday boy/girl to the location of the party.
Turn off the lights and/or hide, when the birthday boy/girl walks in, turn on the lights and have everyone jump out and yell, "Suprise, Happy Birthday!."