Once upon a time (circa 2002) I hand wrote a tiny installer (< 200kb) which analysed the user's version of Windows and then downloaded the appropriate "main" installer for the application. Seem to see that approach is widespread use these days :)
Other than that, the majority of the time whenever I've been in a position to have to develop an installer for a program, it's been done with InstallShield, WISE, InstallAware or another alternative (like WiX).
The reality is that the cost of maintaining and supporting a bespoke installer can be quite high, especially with each new OS released and a lot of that cost can be offset by purchasing or investing in one of these commercial products (or alternatives).
Having said that, many of the installers can be quite obtuse. One specific product required the use of InstallShield Pro - just so we could script out custom actions in InstallScript!
So.. If you have something which requires a fair bit of intricate install work, it's hard to suggest an off the shelf installer package - it can be more of a nightmare in upgrade scenarios especially. If you're going to support your own custom installer, do yourself a favour and budget a lot of time, money and testing to it.
Oh, and make sure you factor in patching scenarios, upgrades, installs with or without administrative permissions, (if applicable) unattended installation, multiple language support in the UI... and so forth.. It can get very messy, very quickly.