I've followed the instructions outlined here, but it doesn't work exactly as I need.:
How to get InstallShield LE to uninstall the existing installation automatically? (apparently this has worked for other people, so it's worth having a look. If it does the trick, be sure upvote @JYelton's answer)
The result of these instructions are that I can install the application without having to uninstall, but now there are 2 separate instances of the application in my Add or Remove Programs window. It doesn't actually uninstall the previous version, it just installs the new version application along-side the previous one.
How can I make InstallShield uninstall previous versions of the application?
Configure the new project to remove the old one by using the Upgrade Paths view: Add a New Upgrade Path, and browse to your previous .msi file to ensure it uses the right Upgrade Code. Then tweak the settings that appear, if necessary; typically they should be correct.