How To Write an Automatic Update System
Here's a link to an eight part series which describes different approaches to inform your customers about available updates to your application and to automatically download and install those updates.
Note that msi setups should not be updated by replacing single files. Instead you should use a .msp patch file and run it to update your application. The mechanism decribed in the article should work well for patches, too. If you digitally sign your patch, and shipped the key in your original .msi file (in the MsiPatchCertificate table) you can even install the patch without requiring administrator privileges. In this case the service that Nir describes in part 5 of the series is obsolete.
The open source Windows Installer XML toolset (WiX) includes an auto-update solution for Windows Installer setups. It is using XML files in the popular RRS format.