We use a combination of Nagios and Cacti. Cacti for reporting, graphing, and trending, and Nagios for notifications. There are a couple forks of Nagios that look interesting like Opsview and Icinga.
I've recently been re-evaluating monitoring apps, but find nothing quite replaces Nagios+Cacti. Looked at almost everything I could find.... Ops Manager, PRTG, ipMonitor, Zenoss, Zabbix, OpenNMS, and probably a few others.
I used Nagios for years. Its stability, reliability, and flexibility were the reasons I never considered anything else. The only problem is that now whenever I hear the Uh-OOOOGA Uh-OOOOOOGA sound somewhere else my brain immediately thinks there's something wrong for about half a second. That's a tradeoff I can live with though.