my little guy isn't a great sleeper either, so I understand how you feel! White noise really helped him (we use an air cleaner on high) at naptime and bedtime. Also we have a consistent pre-nap routine, similar to his bedtime routine to let him know what is coming next. Change his diaper, put on soft, comfy sweat pants or shorts, snuggle a few minutes, then in the crib with his lovies (stuffed animal and small blankie). Having a consistent routine also helped. Routine though, not schedule; we do things in the same order each day, but with adjustments to the exact time (by 30 min to an hour) depending on his appetite, when he is naturally tired, and depending on what I need to get done.
Of course it took us a long time to get him to fall asleep on his own and sleep through the night...he's 9 months old now...and he still wakes up at night sometimes...
Of course when he's sick or overtired, he needs more help to fall asleep (like rocking) and his naps are shorter...and it seems backward, but he is more likely to sleep through the night the earlier he goes to bed! He usually goes down around 7 pm and sleeps 'til 5:30 or 6 am.
The final thing I'd think about is if he is depending on eating in order to fall asleep. If he doesn't know how else to fall asleep, that may be why he still wants to eat at night.
I hope something helps. Every baby is so different, it's impossible to know exactly what will work...hang in there!