My kids aren't big eaters, and J has been pretty fussy at times but I've tried not to stress about it in the hope that if I ignore it it will go away! (head in the sand!). But actually it has worked that way a bit.
They eat most of their food at breakfast time so we stock them up on good stuff then.
Things that help at dinner time are:
1. Serving TINY portions of everything (like 1 bite each). I think we were overwhelming them with food to begin with. Then you can celebrate their success at finishing something and offer seconds etc (second helpings, especially of things they love are often slightly bigger and they love counting how many helpings they've had).
2. Giving lots of options on the table. At meals we often put out things like grated carrot, cheese, lettuce, gherkins, crushed pineapple, avocado, tomato (things that we often have in the fridge anyway). It doesn't always go with the meal, but it's another chance to get them to eat a variety of things (and they do like most if not all of these things). If we're having beans which J doesn't like I can say "fine, today you can choose to have more lettuce and avocado instead if you don't want to eat the beans". Takes the battle out. He does try the "yuck" food from time to time still.
J has some (very minor but nevertheless they are there) sensory issues and we recently discovered he will eat peas if they are skinless
. I now give him a few peas and say "you need to eat your peas. If you want to peel them that's fine, but it's your responsibility". I was worried for a while about letting him peel them but then figured it's more important to me that he eats peas and enjoys peas than how he does it so I suck it up and try not to watch!