I have setup a Nagios server from scratch as well as worked with
Solarwinds pretty extensively. From my perspective they are on two
completely different playing fields. Nagios definitely has its place,
it's free... and it works well in a smaller environment. Solarwinds is
expensive but it is a lot more robust than Nagios. Solarwinds does
require you to install "Modules" in order to have in depth application
monitoring, etc... Then again, so does Nagios... but you have to pay an
arm and a leg for Solarwinds.
So depending on how big your environment is, you'll have to evaluate if the cost is worth it. Nagios, you'll spend your money you save on time to set it up. It takes a lot of time and determination to understand its inner-workings.
Solarwinds is a lot more than just a network monitoring tool. A quick example: You can develop "ghost runs" of an application and have it monitor the latency between steps. Meaning, you could configure it to load a web page, login to the webpage and run a link to gather data, all the while timing how long it takes to get from step to step. That gives you an idea of how much more Solarwinds has to it.
Nagios does have many open-source modules you can use (hell I even used one to telnet into an old AS400 and monitoring running processes).
So like I said, it depends on the environment and what you want out of the system. To answer the question about netflow, Nagios itself I don't think can do netflow but it can pair up with another module that can (and you still get to see it from a single pane of glass). Any specific questions let me know!
There's a ton of open source software out there that use Nagios and not. Ninja (front end GUI for nagios), Zenoss, What's Up Gold (YUCK!), etc... You could also get things like Alienvault (nagios is built in) that has more than just monitoring in it (it's an Open Source IDS). Cacti can be paired with Nagios to provide you with graphs for bandwidth utilization... Ok now I'm starting to blab, I'll end it here.