Smoke simulation is a subset of the fluids system, and can be used for simulating gases such as smoke.
It simulates the fluid movement of air and generates animated voxel
textures representing the density, heat, and velocity of other fluids or suspended particles
(i.e. smoke) which can be used for rendering.

Example of smoke simulation.

Smoke and fire are emitted into a Domain
from a mesh object or particle system. Smoke movement is controlled by airflow inside the domain,
which can be influenced by smoke collision objects.
Smoke will also be affected by the scene’s gravity and force fields.
Airflow inside the domain can affect other physics simulations via the smoke flow force field.

There is a Quick Smoke operator which will automatically create
a domain object with a basic smoke/fire material.
It can be found in 3D View ‣ Object ‣ Quick Effects ‣ Quick Smoke,
or with the operator search menu Spacebar.