I was given some good advice a while ago, when my son wouldn't sit to eat. No drinks between meals, other than water. Then, at mealtime, set food in front of him in the order of importance. For example, my son is usually starving by dinner time and begging me for milk or a snack, so I steam the veggies first, and put those on his plate while I finish making the rest of the meal. He will eat them, even though they aren't his favorite, because he's really hungry and they are there. Then, I bring the rest of dinner over and everyone else sits down. Then, after a few more bites, I bring his milk over.
Of this routine, the part that really makes or breaks it is the 'water only' between meals. Without that, the rest of it did not work for me. With that, it works well.