You don't stick your application on the desktop; it goes in its own folder under "Program Files".
The installer can put a
shortcut to your application on the desktop...
Personally, I recommend
Inno Setup. It is a very good, easy to use installer, with all kinds of powerful features you can play with.
http://www.jrsoftware.org/isinfo.php
You must be very careful to make sure you install things properly, and provide an
uninstall option (Inno Setup will do this for you automatically).
Also, make sure you compile your program for "release" mode - avoid any dependencies (DLLs) you can do without, compile for size, and strip all debugging information. Make sure your program as a properly designed icon in its resource table, providing at least the bare minimum requirements Microsoft recommends. (This part, alas, is going to cost you a little money, unless you are willing to fiddle around with it yourself; but it isn't very straight-forward or easy -- unless you spend money, that is.) If you use non-standard dependencies (DLLs), you must also package them in your program's installer. (You don't need to get too adventurous with this part -- just have the installer put them in the same place your program's executable winds up.)
Hmm, I think that's all. Good luck!