NSIS (Nullsoft Scriptable Install System) is a very capable open source tool for creating Windows installers. It's fast, and extremely lightweight, with the installer adding only a tiny 34KB to the compressed size of your files. And with the program supporting ZLib, BZip2, and the new and very efficient LZMA compression scheme, even that could be much smaller than you think.
Despite its tiny size, NSIS is still packed with features. There's extensive control over the interface (fonts, icons, backgrounds, dialogs and more); your installer can download files as a part of the installation process; and one installer can support multiple interface languages, and all main Windows versions (95, 98, Me, NT, 2000, XP, Server 2003, Vista, Server 2008 and 7). Of course the installer will generate an uninstaller, and NSIS can be extended with a wide range of plugins.
The process of building your installer is a little more complicated than with some tools, as you must learn and work with NSIS powerful scripting language. The program comes with a range of sample scripts to help you get started, though, so it shouldn't take long to learn the basics. And once you've produced a script or two you'll appreciate the extra flexibility this language provides, the way it lets you create custom logic to deal with just about any installation and upgrade scenario.
Note that this is the portable version of NSIS.
Although it takes a little while to master NSIS, your efforts won't be wasted. No other installers cram so much power into such a tiny overhead