This is pretty much a duplicate of *What is the best choice for building Windows installers, so I suggest you check out the many, many answers over there (there's some discussion of the commercial alternatives there too).
The question you need to ask yourself is: Do I need to be compatible with corporate deployment scenarios for SMS/Active Directory deployment? If the answer is yes, then learn the MSI fundementals.
If you want to ship an application that's really just for fun or doesn't need to be supported on a corporate environment and you're not wanting to spend lots of time getting up to speed then learn NSIS.