Remo, I totally agree with you!
CiscoWorks (now called LMS by Cisco, LAN Management System) do this job, but is painfull even with a so integrated product!
Some times (most of them) the best way is do it is "by hand" and "one by one". For example, if a 3570 stack update fails on one switch, you may have an uncontrolled situation! And even LMS is not always able to distiguish this situation, or fail update!
Anyway, a way to keep a local repository of installed firmwares, grabbed directly from devices (TFTP
), and organized version by version, may be useful. So, you need only a TFTP server (o daemon) to distribute firmware updates (downloaded from manufacturer support site) or downgrade if you have any problem with new firmware version.