Also, maybe give Inno Setup a shot. Sure, you might find it to be a bit strange as it forces you to write custom code in Pascal, but then again, there's hardly anything any more that forces you to actually do custom code - Inno Setup is really, really powerful.
Inno Setup also generates EXE installers - if you want your application to be easily deployable in enterprise environments, you'll probably have to go the WiX route, though personally, I've had quite the share of MSI related problems as a user that I personally would prefer MSI die a slow and horrible death (well - actually, a quick death would be favorable at this point - but horrible it can very well be), so just go ahead and do the EXE file thing.
So.
- NSIS:
Requires you to learn a new language. Creates EXE-installers.
- WiX:
Declarative setup creation, although a bit low-level. It certainly requires some fundamental MSI knowledge which I find really hard to obtain through the general lack of easy tutorials.
- Inno Setup: Allows you to create quite powerful EXE installers with an easy, largely .INI-File based syntax, but it forces you to learn Pascal if you need custom coding.
As a long-time Delphi coder, I'd always go Inno Setup, though that's probably very biased (I'm an Inno Setup fan since around 1996).