Its not a bad question to wonder what constitutes a new version. Though, to actually answer the question when a lot of changes occur to a program usually the first digit of the version number is raised.
eg: 1.0 -> 2.0
It would be fair to assume that 2.0 is a lot more capable than 1.0.
When a program is released to a new first digit version and then is shortly followed by a minor fix to solve bugs the new version might have induced it looks like this:
2.0 -> 2.0a
2.0 -> 2.1
2.0 R1 -> 2.0 R2 (R being short for release)
Some programs even have more complicated version numbers like:
Its my understanding that the numbers like this are specifically referrencing what part of the program has been updated. For example:
5.44.2 -> 5.44.2a
could mean just a small bugfix, where as:
5.44.2 -> 5.49.2
could mean that some of the features where improved, you get the idea.
Really the scheme of version numbers is up to the programmer, its just a referrence to the stage of the program. Having said that you should of posted a generic version of this thread in the software section and you would have avoided being flamed.
The general break down of a full versioning of software looks like this:
So if you look at Internet explorers version (for example) it will look something like this : 6.0.2800.1106
Usualy though the versions showed to the public will only be the major and minor version. eg. 6.0
When I develop I like to leave out the Revision and replace it with the date of the build.
eg 26 July 2005 = 050626
where 05 represent the year (due to the fact that this number has no effect on the phisical code you do not nead to worry about the whole y2k problem and can use only 2 digits) 06 the month and 26 the day