There are quite literally 100's of different ways of doing this. So you need to put a little more thought into what your application platform/architecture is capable of (i.e. do you have net access, what is the technical level of your typical user etc). As examples of a solutions:
At startup your app checks a webservice for the latest version number and then compares to the current install. If the version is different then the user has an option to download and install the newer version. This could be done by either getting the use to go to a specific web address or you could download and execute it for them.
You also have the option of using something called Clickonce, this will effectively handle all this for you. This is a big subject so Google is your friend on this one, but as a starter have a look at:
http://msdn.microsoft.com/en-us/library/t71a733d%28VS.80%29.aspx