For breakfast, I put four or five choices on the table-- usually yogurt, eggs, cereal or bread of some kind, fruit, and sometimes a second fruit choice, plus milk and juice. They take what they want from those choices, but the choices are nearly always the same, so there's no room for arguments.
For dinner, I make what I've planned. I plan meals that generally include at least one thing that everybody likes. Take it or leave it, although if asked nicely I'll get some yogurt and fruit for somebody who's really not happy with the choices on the table.
The only time I offer choices ahead of time is for snacks, when I offer a choice of two selections, or for lunch WHEN it's just me and the little ones at home. When everybody's home for lunch, I handle it like dinner. But with just me and my toddlers (I have two year old twins still at home during the day), we'll talk over the choices before I prepare anything, because that seems to go well, and I think they learn about nutrition and meal planning from participating in that process. But if I meet with a balky kid, who doesn't like the choices and won't compromise, I just make what sounds good to me, and they can eat it or not.
I go through this with other issues, though, and my usual response is either to just go ahead and make the choice myself, or to say, "okay, you let me know when you decide," and then I go and do something else.
Do you want to wear the blue shirt?
What about the red shirt?
Okay, well here are the shirts that are clean. You let me know when you've picked one.
(And then I walk away, and do something else, and feign indifference.)