There are many options available. Popular and robust all-in-one solutions include:
Absolute Manage and FileWave have the advantage of being cross-platform (unlike Casper). Casper is the most popular option in the USA (not so much in Europe), and has a good community around it. If you're working or experienced in Microsoft Windows environments, you may be interested to know that SCCM can be used for managing Macs these days, although I'd hesitate to recommend it, for the time being at least.
Apple Remote Desktop can also do what you ask for a reasonable price, as well as remote control of Macs, although it's not the best tool for managing large numbers of Macs because they need to be online when you execute an installation or configuration command (unlike the other solutions I've listed, it's not based on clients checking in with a server for new instructions).
Apple's Profile Manager that's included in OS X's Server app is an Mobile Device Management solution that can manage settings on Macs (your second requirement) but cannot deploy arbitrary software (it only supports deployment of App Store software via the Volume Purchase Program, which is not available in all countries). Many other commercial MDM solutions can do the same, probably the best of which is AirWatch. Another FOSS solution is the Puppet configuration management language, which is very powerful but has a steep learning curve.
For deployment of arbitrary software and files, you may use the popular free open source solution Munki. You could use it for configuration purposes by running scripts in payload-less packages, but it's really not designed for those purposes. Competence at the command line is pretty much a prerequisite.
If you want to save money, I recommend the combination of Munki and Profile Manager or/and Puppet (I'm personally using these to manage our company's Macs, along with ARD). If you have the budget for the licensing fees, one of the commercial options may prove easier to adopt and learn.