Sara, big hugs. My DS is similar to yours. What I do is I try to keep introducing new foods while also keeping something on the plate/tray that I know he'll eat. AND I add veggies, etc into foods a la sneaky chef style. So I make zucchini bread for snack, add sweet potato and carrot puree to chicken fingers, grated veggies to breakfast pancakes, etc. He sometimes does well with lasagna so I make one full of veggies (grated carrots and zucchini as well as sliced mushrooms and chopped spinach).
Also, he eats better sometimes on the run - so sometimes to get him used to something new, like the zucchini bread, I offer it during walks in the stroller. Often then it's more acceptable to him later on in his high chair.
I'm also trying to get better about putting together a meal plan for him and sticking with it. And if he doesn't eat, fine. Then I put it away and try again later or at his next meal or snack time. So for lunch today I'm offering him scrambled egg with spinach and cheese (he sometimes will eat), applesauce (he always eats) and banana bread (he's never had before).
Lastly, sometimes DS will allow me to feed him something I prefer while he feeds himself something he prefers. So he can feed himself say fruit while I feed him egg, etc. Although this sometimes backfires as he'll shovel the fruit in as fast as he can while blocking my hand with the fork/spoon!
Curious to see what others say as well.