NSIS Vs WiX Vs AnyOther Installation Package
It depends on what you are trying to install. If it is a simple application installation, then NSIS is fast and easy to implement (wix has a very bad documentation). But if your installer does some changes in Windows OS, like, creating restore point, installing kmdf or umdf driver, then WIX is much better than NSIS.
I would like to suggest another installer which is InnoSetup combined with ISTools
Innosetup has very good scripting language, and has a wizard to make it easy for you do the installation package and ISTools have the GUI interface for most of Innosetup options,
I was able to Install Mysql, its service and creating tables and other things with it, and it's much easier to learn than others.
If you want to use WiX, you need at least a basic understanding of how Windows Installer works. The best reference around is The Definitive Guide to Windows Installer, which runs through the all basics with examples using Visual Studio and Orca.
WiX is very easy to learn once you understand Windows Installer.
A properly written Windows Installer package will be more stable and resilient than anything else you can imagine. It'll take a month or so to get your head around it, and you'll get better and learn more about it over time.
On the other hand, NSIS only takes a day to learn - it's just a simple scripting language.
@wcoenen - I'd agree that you definitely will learn more by reading various blogs of those on the WiX team, but I personally find that particular book gives a really solid foundation which makes it easier to understand the concepts they're talking about.
@Sandeep - You need an MSI package for corporate software, if you have no intention of selling your product to customers who need automated deployment in a locked down environment then NSIS will suit you just fine :)
@romkyns InnoSetup is fairly limited in my opinion, you can do just as much with a batch file and a self extracting EXE - it all comes down to your target market, corporate/enterprise clients demand MSI - home users don't care as long as it works and would happily double click on a SETUP.BAT file :)