A car engine can smoke for several reasons. If the smoke is blue, it means it's burning oil. This could be caused by valve stem seals, worn rings, a plugged PCV valve, not changing the oil for extended periods, too high of an oil level or transmission fluid being sucked into the intake manifold from a bad vacuum modulator. When the valve cover is removed, there's so much sludge built up under the valve covers that it appears like mud.
Over time this mud turn hard like a brick. When the car is started all the oil was going up into the valve cover but with all the sludge it could not get back into the oil pan. All the oil would end up in the valve covers because the holes were blocked up not allowing it to return. When this happens, the oil drains down the valves and into the combustion chamber and it smokes. This is caused by not regularly changing the oil in the car. It will eventually cause an engine to lock up from lack of oil on the crank and bearings.
If the smoke is black and smells like gas, it could be the spark plugs, the ignition or the wrong mixture in the carburettor (if the car has one) or the same thing in a fuel-injected vehicle with different components. In a fuel-injected vehicle, the map sensor, mass air flow, cam sensor, faulty fuel injector, ECM computer, fuel pressure regulator, bad spark plugs or problem in the ignition circuit could cause black smoke.
If the smoke is white and has no real smell, it's likely that the head gasket is blown. This is usually caused by overheating the engine and usually causes the oil to be saturated with water. This is particularly bad because the oil is not effective at protecting the bearings and can ruin an engine quickly. It also causes the engine to overheat again because hot gases are getting into the cooling system. White smoke can also come from a leak in the intake manifold runners, allowing water to be mixed with the incoming air.