Have something to do once you get up, a reason to get up. I had the same issues before I started to go to the gym in the morning. This has really fixed my sleeping routine.
If I don't have a reason to get up in the morning, I'm much more likely to stay in bed before I go to sleep again.
Yes, this is my biggest tip as well. All the best intentions in the world won't help you change for good - in my experience. Though having said that, even something voluntary like going to the gym might not be enough...
The two things that worked best for me were:
Organise every meeting you possibly can to be in the morning, and don't allow yourself to cancel.
Go to bed with something unfinished, i.e. have something to do that really propels you out of bed. An example would be leaving a piece of code not quite done, but with a good idea of how to finish it (if you haven't got a clue, it's more likely to make you want to stay in bed and make it go away, no?). Thinking about the problem while dropping off and waking up makes me just want to leap up and fix it.
Other tips, potentially irrelevant to most commenters, but that worked for me:
Give up WoW. Or at least stop playing it late at night. Seriously. The difference in sleep quality, for me, is night and day.
Hack your nutrition. Eat low-GI. Cut out soda and junk food. Let caffeine be a treat, not a staple.
Have a flatmate or loved one poke you awake. Even if they're not geographically present, having someone you love call you or tuning yourself to wake up to the sound of an incoming IM can help you boot up faster in the morning.
Read in bed, but don't read anything too interesting. I still have this backfire when I open a new book at 11pm and don't sleep 'til it's finished. Others love to journal instead, which can be a great relaxer, but I end up making todo lists which has the opposite effect.
If I don't have a reason to get up in the morning, I'm much more likely to stay in bed before I go to sleep again.