I'd start by checking to see if you are getting oil in your spark plugs. If you have oil in your plugs you have bad valve stems or worn piston rings.
Blue:
Blue smoke indicates burning oil (this is the most common). If the car is older, or has high mileage, than most likely the piston rings have worn down and oil is getting by the piston as it moves down the cylinder wall. It then gets burned with the fuel, which produces the blue smoke. The faster you go, the more smoke pours out of the car. If this is what's happening, keep an eye on your oil level. You will definately have to add some between oil changes.
White:
White smoke is not such a good thing. It means that coolant/antifreeze has gotten into the cylinder and is burning with the fuel. This should not be happening. If your car is burning white smoke (not just the white exhaust on a cold day, but consistently produces white smoke), first check your coolant tank and monitor the levels for a while and note if it's going down a lot. You should also look at the coolant and see if oil is mixing with it. Also pull out the dipstick and look for coolant that was contaminated the oil. Look for green spots on the dipstick, or an oil consistancy of chocolate milk. If the coolant is mixing with the oil, and you continue to drive the car, the car is not getting the proper lubrication it needs, and the engine can sieze at any minute (this will junk the car). The mixing is caused by a blown head gasket(most likely), possibly a blown intake manifold gasket, or worst case scenario, a cracked head.
Black:
If you have black smoke coming out the end, it means that too much fuel is being dumped into the cylinder, and not all of it has the chance to burn. This is caused by a faulty fuel-management computer, fuel pump, a faulty injector, or on older cars, a poorly tuned carbeurator. This is cause for the least concern, and usually just means you will get bad gas mileage. I would still have it checked out eventually.