Vertex groups are a group of vertices from a mesh that allow specialized selections and or editing.
Vertex groups are mainly used to tag the vertices belonging to parts of a mesh object or Lattice. Think of the legs of a chair or the hinges of a door, or hands, arms, limbs, head, feet, etc. of a character. In addition you can assign different weight values (in the range 0 to 1) to the vertices within a vertex group. Hence vertex groups are sometimes also named ‘weight groups’.
Vertex groups are most commonly used for armatures. But they are also used in many other areas of Blender, like for example:
Armature deformation (also called skinning)
More information at the Blender Manual