Application versioning, Code and element level versioning, both make sense.
If you are covered by any regulatory compliance than it is more than a good idea. If not it still makes sense to use versioning to control releases into production.
What is a good version numbering scheme you ask? The most widely accepted model is the Major, Minor, Point. (8.5.1 for example)
Major Releases deliver new functionality and may include new products. Major releases also contain bug fixes reported on a previous major or minor release.
Minor Releases deliver bug fixes reported on a previous major or minor release and may also include new functionality.
Point Releases deliver bug fixes and minor enhancements.
So lets use Lotus Notes for an example. (This is all in fun)
We have Release 8.5. IBM releases 8.5.1. this scheme would have me believe that there are no new features, just bug fixes and some minor enhancements! Hmmm I guess having Domino designer in eclipse is only a minor enhancement :-) I personally would have called it Release 9 (Again based on this scheme).
Some people have Design element level versioning as well. This means you need to effectively comment your code to include the version number. This will simplify testing and auditing changes.
Element versioning is typically overkill for most Notes shops, but I worked for a FDA regulated company, and we had to do this, (I was not so bad).
So to recap:
Application versioning is good, provides many benefits
Design element versioning is good also but may be more work than is needed for some environments.