We have a cluster of about 60 servers, and use Monit and Ganglia to manage it. Monit will alert you when certain problems occur -- for example, if the server load is too high, if a service stopped running, or if can't reach the database. Ganglia records data and graphs that data over time. We use it to see how busy our server are getting, or how our peak resource usage compares to off-peak. Monit is important for noticing a problem; Ganglia's useful for diagnosing that problem.
That said, I'm a huge fan of Cloudkick. Their software is ridiculously easy to install and use, and the web application makes it VERY easy to understand what's going on with your services. It's perfect if you're just monitoring one server -- it's free -- but even worth the money if you've got a whole cluster. If I could do it all over again, I'd definitely go with Cloudkick.