I had a similar problem with my 13 month old daughter. She was a great eater - fruits, veggies, meats, whole wheat noodles, cheese, eggs, etc. Then the holidays came along, and we had either set of grandparents staying with us for about 2 weeks. They let her eat/not eat whatever she wanted, including cookies and ice cream. I obliged them since they don't get to see her that often.
After they left, she naturally refused to eat all of her healthy foods again. But I stuck with her pre-holiday menu, and after 2 1/2 days of barely eating a bite of this and that, she's back to eating as well as she did before. Also, know that I only feed her every 3 hours for meals and snacks (this provides security and predictability). I'm really glad that I had the wherewithall and discipline to do what I knew would work eventually.
Try to avoid caving to what he wants, it'll just lead to more problems. I believe that this is harder to do with sons than daughters. Most of the picky eaters I know are boys. I think my mom friends with boys are freaked out at the thought of having a son that's little, that they'll feed them whatever they want as long as it's a lot. Whereas it's not necessarily a "bad" thing to have a daughter who is little (obviously the gender bias in our society). I'm sure others have the opposite experience, but it's just something to think about.