I would strongly recommend Gephi for this. You can import data (nodes and edges) directly from a database(MySQL, SQLServer, PostgreSQL, SQLite, TeraData) using simple SQL queries. Or you could import data from a CSV file.
It also has great set of algorithms to analyze your graph. Gephi is built in a modular fashion and is open source. They have also released a Gephi toolkit which is a library that can be used in any Java application, if you were to develop your on visualization software.
Also sigma.js which is a Javascript library is highly recommended for visualizing graphs. Sigma.js is inspired from and can work along with Gephi toolkit.
A collection of data visualization tools can be found at http://selection.datavisualization.ch/