I agree with donny, he may just be small - what centile was he on last time he was weighed?
Now, my dd2 is a little small and we have been told by the paed she needs to have a high fat diet to keep up to where she should be. Through no fault of ours, she has been a nightmare fussy eater, and has been anaemic. If your hv or gp thinks your boy needs to put on weight, then you may need to look at how much he drinks - our dd2 would much rather drink than eat and will fill up on juice or water. You need to be really strict if this is the case but you will see a remarkable change in eating.
Good nutritious high-fat dishes include cauliflower cheese, macaroni cheese, pizza (pref. home-made), home-made or good-quality pies, shepherds pie with a cheesey mash topping etc. Also plenty of yoghurts and custards are good. HTH.