First off I like many of the retrospective techniques already called out here.
A personal favorite that I've run a few times is a Lego retrospective. Basically you need a good big old pile of Legos of various types and have the team members build a representation of the last sprint using the Legos. Once completed have each person show their creation (or if team members joined together have them show the joint creation) and let the other team members attempt to guess what the meaning of the creation is. Then have the creator(s) say what they really meant by their creation and allow any conversation that might come of that. Rinse and repeat with the other creator(s)
What I liked most about this one is it's really different from your standard format and allows the team some serious creativity.
Here is an article where I originally got the idea though I don't run it exactly like this article states.
I'm going to let others chime in on this thread first before I share more of my favorites. Will give me a good reason to come visit the site the next few days.
Cheers and happy retroing