I use Puppet, Makefiles to build RPMs and Bamboo to do this for me. My system doesn't directly apply, and I'm not to familiar with the Windows world, but there are some transferable patterns.
My make setup allows me to build RPM's for everything (php libs, php websites, perl modules, C apps, etc) that make up my app. This can be called manually, or through Bamboo. I transfer these RPM's into a yum repo and puppet handles making sure the latest (or correct) versions of software are installed in the cluster.
Could you automate building software packages into MSI's? I think Puppet can manage installation of software packages and versions in Windows.