Version Control / Revision Control / Source Control are software which help to keep every state of program from which it pass through. Like if you developed a basic calculator, later you add more functionality like square root and under root. Using version control you can restore your program to your program till Basic Calculator. You can also see changes made between previous and latest version of program.
Here is a comparison of Readme.txt file of version 1 and version 2 of HTML parser script. After implementation of new functionality if you code would work normal so you can roll-back/restore to working state of program.
Found somewhere on internet :)
Brief History
First Generation, In this generation source code is only available with only one developer, There was no networking support. History is available of each file separately there is no connection between them. e.g. SCCS, RCS
Second Generation, In this generation there was support for multi file mean that changes made on multiple file are save as single change. So that you can see all changes made after implementation of specific functionality. In this generation source code is save in one system and developer can check-out(get) a file from central source code using network access and resubmit to main source code after changes. e.g. CVS, VSS, SVN, TFS, Perforce
Third Generation, In this generation the main different is of distributed system this mean that every developer have the full source code of program and after making changes to code he can submit his code (change set) to main repository (full source code). e.g. Git, Hg, Bazaar, BitKeeper
Further Reading: ericsink.com