We tried all sorts of things with varying success. DS in particular was awful for about 18 months from his second birthday, DD wasn't quite as bad but is more inclined to be fussy now, at nearly four.
Some tips:
Raw carrot batons, red pepper, peas, cucumber etc: put out at snack times or when kids are sitting at table waiting for a meal, even in a bowl while watching tv/a film. We find this sort of mindless eating was a good way of getting them to eat veg almost without noticing.
Beans on toast: chuck in a ball of frozen chopped spinach with the beans when cooking. (Actually we still chuck chopped spinach in all sorts of things, e.g. Bolognese or pasta pesto).
Grated/finely chopped cauliflower - mix with mashed potato.
Games as a PP mentioned also worked for us. For a while the only way of getting DD to eat much of nutritional value was to close your eyes and say "I am just about to have this yummy piece of broccoli I hope no one eats it first!" While waggling it in front of DD. She would think it hilarious to steal the food from us.
It isn't popular on MN but we also found simple bribery re puddings to work: if you eat x you can have ice cream for pudding etc.
Filled pasta with things like mushroom in the middle.
Both eat pretty well now at 6 and 3.10