Currently a Chumby at the foot of my bed set to start off with internet radio. That way I have a gentle wake up process, and also ensure more effort then a simple arm movement is needed to hit snooze. Then, my iPhone with an alarm about 15 minutes after the Chumby, to ensure I actually wake up.

I tend to be a very heavy sleeper, and more then willing to abuse the snooze button. So far this setup seems to be working well. When I had the Chumby at my bed side, I found I was hitting snooze without even fully being aware of it.