There are several visualization methods. For example, you can visualize the adjacency matrix or visualize nodes and links directly (node-link diagram). Node-link diagrams are in general more beautiful but they are not necessarily the best method.
- Cytoscape - Better than Pajek. Probably one of the best solutions to draw a standard 2D graph figure. Still it is painful to use.
- Gephi - has cool demos but hard to use.
- Gource - visualizing revision control system log
- Graphviz - It produces a very nice layout for small graphs (especially directional ones), but cannot draw large graphs effectively.
- NodeBox - Python library
- Pajek - Once standard, now maybe outdated. You can produce nice figures if you spend a lot of time though.
- Processing - If you are familiar with processing/Java, probably one of the best ways to draw a product-quality graph visualization.
- Tulip (software)
- Ubigraph - cool, but no way to export the results.
- .dot: developed by Graphviz project. Simple. OmniGraffle can read it.
- .net (pajek)
- edgelist: probably the simplest and the most common format. You list edges (nodefrom and nodeto) with a separator (e.g. a tab)
- geometry in action: Graph Drawing
- A Visual Survey of Tree Visualization
- http://skyeome.net/projects/networkChart/comparison.html - web-based graph visualization tool comparison
- Graphs Beyond the Hairball