White smoke usually occurs when there is not enough temperature to burn the fuel. The unburned fuel particles are then exhausted usually by a rich fuel smell. In cold weather it is not uncommon to get white smoke until engine temperature builds up. Low engine cranking speed can also create an excessive amount of white smoke.
If the problem persists after the engine is up to operating temperature several other things should be checked. A faulty injector can cause white smoke. Timing is often a factor when white smoke is excessive. Low engine compression can cause the problem and the injection pump can also have problems that result in white smoke. Air in the fuel system can also result in white smoke.
Lastly steam cause by a head gasket or other water leak into the combustion system can disguise itself as smoke. Steam will dissipate rapidly being once it hits lower temperature ambient air while smoke will persist and hand in the air.
Blue smoke is a sign of lubricating oil being burned by your engine. If you have blue smoke mainly at start up and it is very minor while running, this points to worn valve guides. When the engine sits for a bit (over night etc), oil left in the head after running can seep down into the combustion chamber. Upon start the bulk of it is burned quickly.
If you see blue smoke all the time when running, odds are you have a problem with rings or cylinders or both. All though sometimes a little solvent in the cylinders left overnight may free rings stuck up with carbon, usually, you will have to pull the engine and rebuild it to get things back to normal.