When I worked in day care we had several children with similar issues. The kids usually get a late afternoon snack after nap, but some of these kids will literally STARVE themselves from lunch to save up room for the juice and cookies at snack time!! Then they gorge themselves.
Some of the parents solved their problems by declining the "normal" afternoon snack and sending a nutritious snack (whole wheat crackers w/ milk, or slightly cooked carrots with dipping sauce or somthing similar). At daycare, we didn't always give juice and cookies, but "snack" seemed to be enjoyed much more than the steamed broccoli for lunch!! LOL
If this is the case with yours, you can also substitute the juice for water or (depending on the time you pick him up) decline him the snack all together. Then, he'll have more of an appetite for dinner.
As far as what to feed them, I have two kids, 4 and 2. 2 is a tricky age no matter what. My son would literally fall asleep on his plate EVERY NIGHT and I would have to stay up and feed him dinner around 9 pm. With my daughter, she stays awake just fine, but get's picky about some things. Sometimes she wont eat her favorite stuff, sometimes she will. With her, it's really a shot in the dark!
Bottom line is that if they are not loosing weight, I wouldn't worry about it from night to night. Sometimes they eat, sometimes they don't. With toddlers, it all seems to just balance out from day to day.