I find myself rarely agreeing completely with Jeff Atwood, but I tend to follow hisJeff Atwood's opinion of the .NET convention of version numbering.
(Major version).(Minor version).(Revision number).(Build number)
More often than not, for personal projects, I find this to be overkill. The few times where I have worked on substantial projects like search engines in C# I've stuck to this convention and have been able to use it as an internal tracker effectively.