Firstly, cake - yum! I think I'm going to have to nip out from work to get a slice now!
We started with a consistent bedtime routine where we talked about what was going to happen including that after brushing his teeth it would be bed time. We became quite over the top about the routine. We would leave people's houses early, or end phone calls, etc if we had to so we could make sure the routine wasn't late or interrupted.
Much of the routine involved time spent cuddling - stories, bath together, bottle/BF, etc. I think this helped.
When it was bed time I would take him into his room telling him it was time to go to sleep. I still cuddle/rock him while singing softly, then I put him in bed almost asleep (I can now put him in bed relatively awake). For the first month I would hold my hand on him and sometimes stroke his forehead until he fell asleep, then sneak out. The next stage was walking out and coming back when he called out. I'd go through the routine again (cuddle, singing), etc. Over time I have needed to do this less and less.
During the night I would go to him if he called out. I would try to do the routine but mostly he would fall asleep on me and I'd then sneak out. Often however, he was too distressed and I would bring him into bed with us. I gave up trying and did this most nights for ages - I needed some sleep!
At the time it felt like it would never end. Over a few months he started sleeping in his cot longer and longer. The first wake up came at 10pm, then moved to midnight then 3am. Most nights he now sleeps through till at least 5am (then comes into bed for another hour and a half). Sometimes he now sleeps right through.
When he's sick he does wake up more often and we bring him into bed. He quickly goes back to where he was before then.
All of this is what worked for me personally. I know some would disagree with how I've done things. I always think as long as you are happy then it's ok. I very much doubt your son will still want to sleep in your bed with you long term!
Oh - make sure you have a nap routine too.
Hope it goes well :-)