We used the same rule that my parents used with my brother and me -- the Yuck rule:
1) You don't have to eat anything you don't want to eat. Not even one bite, not even a taste of a new food.
2) UNLESS: if you say "yuck" or make any other disparaging comment, noise, or grimace about anything that anything that is being served, you have to eat it. A LARGE portion of it. No appeal, because you got yourself into it and have no one to blame but yourself.
Believe me, no child violates that more than one time; some zero times, because seeing your sibling going through it is enough!
The point was to teach us that it is extremely rude to disparage what others are eating. And it worked, on both generations. I expect my kidz will use it, too, when they are parents.
But of course you can't teach only by negative reinforcement of violation. So long before our kids were old enough to understand any kind of rule, or even barely old enough to talk, like, I don't remember, probably by age 2, we just hard-wired it into them:
"Thusnelda, would you like some peas? 'Yes, please,' or 'No, thank you'?" (We didn't teach them "I don't care for that," because that is beside the point, too.) The point is to make it second nature. To them, it might as well have been all one word in either case: yesplease or nothankyou. They just naturally learned to answer that way without any explanation of why, the same as you teach "say please" long before the child is old enough to understand what manners are. Come to think of it, maybe this is why "I'm good" instead of "no, thank you" or at least "I'm good, thanks" sounds so rude to me.
As for correcting other people's children, I think you have to know which relationships allow for that and which don't, even in your own home. I am usually inclined to do it, but I try to be sensitive about the way I do it. (Obviously I don't enforce the dreaded Yuck rule against children who aren't on notice of it!)