Here's something I wrote very quickly (bash script): https://github.com/vahek/vSetup
It does most of the stuff mentioned in the post, however doesn't setup automatic updates or Logwatch.
(to both corin and vahe): That kind of shell scripting is the horrorshow that motivated configuration management tools* in the first place. Shell scripts require a lot of added complexity to manage multiple heterogeneous servers, or to be idempotent.
* Puppet, Chef, Ansible, Salt, CFEngine, etc.