To be perfectly honest I believe that selection of monitoring system is not that important as a proper configuration. I have been using for years Nagios and was completely happy with it.
I have seen administrators who preferred some successors of Nagios (personally today I prefer to use Icinga2 – manual to set-up can be found here – How to Install and Configure Icinga 2 / Icinga Web 2 on CentOS 7 and RHEL 7 ) but many forgot what quality configuration means.
For example, having a system which sends you one hundred alerts every day which you just delete every morning from your e-mail is completely useless. Many system administrators do not even know there exist a button called “Acknowledge” which you can use to disable alerts for services which should be down and you know about it.
Also, there should be a discussion what is monitored and why. I have seen it countless times when system administrators forget to monitor RAID arrays health status. This is a very important thing. On the other side, some system administrators do not monitor RAID arrays health (because usually, you need to write a plug-in for it) but monitor server load and send alerts every time it goes above some usage (even when it is completely normal).
So for me, proper monitoring is not about if you use Nagios, Icinga or any other monitoring system but about proper set-up when you send just a few alerts and monitor important things as RAID arrays.