I have been struggling with this for a couple of years now with my almost 5yo. The things he likes are extremely healthy and he likes a wide variety, however he will not eat meat. He also will not eat foods that are "mixed" and all of the sudden he will not eat veggies that are cooked. So it sort of limits things, but I try to make things that everyone likes, but I've also gotten tired of never having a casserole or never having asian food because it's all mixed up. I understand why people say go ahead and make yourself a sandwich or grab a yogurt, but I really don't want to create a kid who will choose to make pbj every night rather than consider what's on the table...that's totally what he would do.
I'm not sure how you serve up your meals, but I used to dish up everyone's plates and bring them to the table. I would put a little of everything on everyone's plates. And I KNEW on some of those nights, ds would cringe as I brought his plate. This would cause me to sometimes make something extra for him and his brother. BUT, I have had great success with changing our system to family style dinner. I make everything that I want to make and put everything out on the table in the pot/serving dish, and if I know my picky one won't eat it, what I do is I will add things like cut veggies and dip, applesauce, fruit salad. All things that would naturally compliment any meal, but that I am SURE he will eat. Then we start our meal by passing around every single bowl and the rule is, you take what you want, no thank you to what you don't, and there is NO COMPLAINING because they have the power to choose and I am determined not to be nagging about trying stuff. It has even worked that my picky one will take a scoop of something he's never had and said he was going to be BRAVE!

It's slightly more work to put everything out, but on the other hand, it's all ready to be put in the fridge after dinner because it's in a bowl. But it has dramatically decreased my tension and the kids LOVE passing the food!