E.P.
We struggled with sleep with our older son for years and finally -- when he was four and a half -- we got an appointment with Dr. Ferber, the famed children's sleep specialist. I think part of our son's problem is genetic -- I have insomniac tendencies. However, Ferber really helped us turn it around. (We'd done the "Ferberizing" many times on our own.) One of the things he told us was that we were probably putting him to bed at a time that just wasn't in synch with his natural sleep cycles, and there's nothing worse than lying in bed and not being able to sleep. He was going to bed around 8:30 or so. Because he wasn't ready to fall asleep, he would get up again and again, and then every time he woke up in the night, he'd feel the psychological burden of having to fall asleep again, which was hard for him (and for us because he would come running into our room at all hours). One thing he told us to do was to keep our son up very late so that he would be so tired that it would be easy to fall asleep, and then to move bedtime earlier by 15 minutes every night until we found the right time for his rhythms. We started with 11 p.m. -- I know your son is younger, so maybe the initial starting point would be earlier. The first night he was nodding off and we were prodding him to keep him awake until 11, and then when he went to bed he was so sleepy he went right to sleep. Then we slowly moved bedtime earlier until we hit the right time for him, which turned out to be about 9. That seemed late to us for a young child, but for the first time he began to regularly sleep through the night.
Ferber also told us no naps, but your son might be too young for that. You might want to limit length of naps though.