I've struggled with this my whole adult life too. (I'm 33) Recently I've been doing much better, mainly by having enough to eat throughout the day and enough at dinner so that I'm full and know that any craving I may be having isn't actual hunger. I have two steps that I try to use to signal to myself that my eating day is over: 1 is to have my calcium chew and a big glass of water, and two is to record my calories for the day in my health journal. (I use FitDay for tracking my nutrition but keep a print journal of my workouts and other health info.) I know it's just mental, but that does seem to help me keep myself from overeating because I can say, "Well, I already recorded the final total for the day in the journal..."
Not sure if that will be of any help, but I can totally totally relate to what you're dealing with.