For this present episode: how long has he been having these symptoms?
It might be a virus- in kids it might take about 2 weeks or so for viral illness to subside. Some viruses can cause prolonged cough- about 3 to 8 weeks too.
A visit to your doctor will help. If its suggestive of a bacterial infection he might need antibiotics.
For relief of his cold
and cough, he might need antihistamine preparations like Sinarest- AF, 5 ml twice a day for 5 days.
Does he go to a day care/ play group? If yes, he can catch frequent infections.
There are no magical medicines to improve immunity in kids.
Upto 5 yrs of age, they are prone to get 6 to 8 episodes of upper respiratory infection
per year. Each infection will give them more and more immunity.
Give him a nutritious diet- with plenty of fresh fruits/ vegetables/ nuts/ eggs etc.
Restrict milk/ any health drinks to twice or thrice a day.
Avoid junk food.
Teach him the need of washing his hands often.
Give him all needed vaccines.
You may ask your doctor for a micro-nutrient supplement for a couple of months.
You may try preparations like Septilin
for few months- though one can`t be sure of its effect on immunity.
Hope that answers your query.
Wish your son good health.