Here's a different suggestion than the "cry-it-out" method:
I had a single futon mattress that we snugged in between the corner wall, and our own bed. Baby went to sleep on the futon just near by us walled in on 3 sides, and we went to sleep in the big bed above.
Part of the reason for our choice in this - we had the futon, didn't have a big crib once he grew out of the bassinet, and he had slept with us part of the time before that. He actually enjoyed his futon because it was large and he could crawl around on it and play with toys.
Since then, we have transitioned to having the futon at the other end of our bedroom, snuggled in our large walk-in closet (we have a long bedroom with the walk in closet that we keep the folding doors open to.) It is like he has his own cubby for sleeping. He can still come find us when he needs to but he knows where we are.It is also nice because he can crawl onto his bed by himself.
The training him to stay in the bed, well, we're still working on it. But for the most part, when its time to go to bed, he knows it and goes. Some nights he is just too wired to sleep and these days, we make sure he stays on the bed and doesn't wander around the room but you can't force a kid to sleep. He likes to get his stuffed teddy bear or dog and play with them for a while. Often he is just trying to get into a comfortable position.
We do lay down with him initially when he goes to sleep but if he is wired, we usually just tell him "in one minute I am going to go to my bed" and then we go. He doesn't usually like that but he gets it. Most of the time, he is a cheerful to bed kind of guy. I actually like the going to bed time since that is a time to relax and be close but not be too active. Sometimes he likes to talk and go over words he's learned to say that day. It is kind of neat. Sometimes we sing songs or say prayers or tell a story.