In theory, Vertex Color allows to color a model without having to bother with textures. This is quite common in CAD.
In practice, it's just one more slot you can use to push data into the vertex, which you then use in the vertex shader to do crazy stuff.
"Isn't a vertex simple point on 3D space?"
That's what I used to think, when I first started with 3D. I learned quickly that I was wrong.
You can think of a vertex as a data blob that makes up a corner of a triangle you want to paint on screen (and neither the "corner" part nor the "triangle", "paint", or "screen" parts are always true). Position is one -optional - aspect of that data blob we call Vertex.
There is a lot you can do by attaching additional data to the vertex. The most famous example is that you can add uv coordinates to draw a texture on that triangle. You (usually) can't decide what part of a texture to draw on the triangle if you just have a point - you need texture coordinates too.
Other standars examples of what's in that blob are normals, and tangents. What's important is that all of them are optional, including the position. Vertex Color is just one of these optional inputs that you can use or abuse to create a pretty picture on the screen.