We've found very few off-brand items that we didn't like. If you go to the store for a great sale on pork roast, discipline yourself to buy only the item you went there for. Those little incidentals you throw into the cart really add up. That's the biggest money waster there is. Don't always give him only what he likes.
Most kids have to try a food several times before they decide they like it.
At our house, the rule is that you eat what's on the table. I try to include at least one food the kids really like, but they are required to eat at least 1 tablespoon of everything. After that, they can choose how much to eat or not to eat at all, but there is no raiding the fridge for something that looks better. Remember that it's his overall diet that's important, not what he eats at one meal or in one day. He won't die if he skips a meal and he'll be better off if he learns to like a wide variety of foods.