We use Nagios because it does exactly what we need: Alert us when
something is wrong and (with PNP) show some trend to figure out when or
maybe how the problem started. The graphical output is for sure not
state of the art, but we are not artists but rather techs ;) As a hosting
business we have quite a homogenous infrastructure and use mostly snmp
for fetching data in our own scripts. Once the basic setup for Nagios
is done it is quite easy to automatically script new hosts when you add
new machines or delete the old ones. However your choice might be
different if you have to monitor IT of various customers with totally
different infrastructure.
And finally there are apps for android, iPhone, etc so with just one look at your phone you see if everything is well.