I have used Openview Network Node Manager. As far as I'm concerned it provides a generic SNMP framework. Since your buying into a framework and not a total solution, your satisfaction will be gauged by how much effort you put into customization of the product. I don't really care for the polling aspects to determine if a device (Router Interface) is down. I have written a Multi-Tasking Perl script with SNMPv1 that is front ended by NNM. I process about 8 traps, plus some RMON traps, that ended up providing a very clear representation of the operational status on a Cisco network.
Perl SNMP is very easy to implement, to my knowledge, only V1, V2c is available through Perl. At this stage, I have toyed with processing traps through UCD SNMP, in hopes of eliminating NNM.
Regards,
tom