Instancing is a new way to offload the CPU from some work when rendering many copies of the same geometry. It does it by reducing the overhead of drawing multiple copies of the same vertex buffer.
In OpenGL it’s only fast to use instancing when the instanced mesh consists of very few triangles.
Nvidias instancing demo, here with 136499 meshes rendered at once with 24 triangles per mesh. It runs at 20 fps stable on a GeForce 8800 GTS. (left image is all objects viewed from far away, right is zoomed in)
A image from Microsofts DirectX10 instancing demo
Some test made that shows when to use instancing and when not
HLSL instancing (therefore DirectX)
Nvidias DirectX10 implementation of instancing
Microsofts DirectX9 instancing sample
Microsofts DirectX10 instancing sample
An OpenGL implementation of a pseduo-instancing (recommended for old hardware).