According to the Iowa State University page Carbon Monoxide Poisoning: Checking for Complete Combustion (AEN-175) suggest the following mechanisms that cause incomplete combustion:
- Insufficient mixing of air and fuel.
- Insufficient air supply to the flame.
- Insufficient time to burn.
- Cooling of the flame temperature before combustion is complete.
The main notion is the lack of air to cause complete combustion (either through lack of supply, mixing or time for combustion).
However, it should be noted that, practically speaking, according to the ChemWiki page Burning Alkanes, the size of the hydrocarbon has an affect in 'normal' conditions:
Provided the combustion is complete, all the hydrocarbons will burn with a blue flame. However, combustion tends to be less complete as the number of carbon atoms in the molecules rises. That means that the bigger the hydrocarbon, the more likely you are to get a yellow, smoky flame.
The reason being (according to ChemWiki) is:
If the liquid is not very volatile, only those molecules on the surface can react with the oxygen. Bigger molecules have greater Van der Waals attractions which makes it more difficult for them to break away from their neighbors and turn to a gas.
So, the larger the hydrocarbon, the less likely it would vaporise sufficiently, thus less chance of the optimal mixing of air and fuel, resulting in incomplete combustion.
However, provide the right conditions with sufficient supply of air and optimal hydrocarbon-air mixing ratio, it is still possible to cause complete combustion, in the general formula (for many hydrocarbons):
$$\ce{C_{x}H_{y} +O2 ->H2O + CO2}$$
A quite comprehensive resource explaining each of the factors is the University of Tulsa chapter Fuels and Combustion.