Does anyone know of any tools to make .msi installations with?

I know of InstallShield but that costs money and I need something free. I had a play with the stuff in the SDK and there has to be an easier way.

Also the Visual Studio Installer isn't a viable option for me at the moment -- they need a real product ID and I am totally cash-strapped.