white smoke may be water vapor/steam, especially in the early mornings or during the rainy season. if the smoke disappears some distance from the pipe then it may well be water vapor.
if there is still water vapor from the exhaust at midday, then it could be the cylinder head seals are damaged resulting to coolant water going into the cylinders, especially if the coolant level in your radiator needs topping up often.
gray smoke is burning oil. could be the result of blow-by (oil control rings already worn) or broken oil control rings or worn intake valve stem seals (oil flows down the intake valve stem into the cylinder). note that the color "gray" here means ANY SHADE OF GRAY, it could be anywhere from dirty white to almost black.
black smoke means the air/fuel mixture is too rich or faulty spark plugs (on a gas engine) or bad injectors (on a diesel). OR loose compression (another word for blow-by).
loose compression or blow-by simply means the piston rings are no longer doing their job of sealing between the piston and cylinder walls resulting to, you guessed it right, blow-by.
best way to tell a blow-by is to have your engine undergo a compression test. but before you do so, try this. while the engine is still COLD, open the oil filler cap and put your palm over it to close it. check for air pressure pushing up on your hand. if the pressure is too much, time to suspect a blow-by and have your engine compression tested.