The key for me was having both a reason to wake up, and a reason to go to sleep. To have a shot of waking up on time in the morning, you unsurprisingly need to go to sleep about 8 hours before you want to wake up. Part of the kick for me was the realization that the later it gets, the more likely I am to do mindless things I don't actually want to do (e.g. Facebook). So, I thought, why not sleep instead?
If you're productive that late, maybe there's no need to change. But I will say I used to be productive that late (read: every college problem set was completed between midnight and 6am), and I still think becoming a morning person was a great decision. More than morning productivity, I just feel better in general.
To actually wake up on the other end, I find I need a particular reason, i.e. something that I'm going to do the moment I wake up. For me, that's running to the gym. I'm sure the fact that it's exercise has some extra effect, but I really think it's mostly just the fact that every morning, by rote, I roll out of bed, put on running clothes, and walk out the door. No thinking involved. I suspect it would work about as well to roll out of bed, put on clothes, and fry an egg.
To address particulars of other comments: I'm 25, I don't have a physically intensive job, I often (usually) eat as late as 7 or 8pm, I never drink caffeine after 4pm (I've found that makes it harder to fall asleep). I go to bed at 9:30pm and wake up ~5:45am.