In a similar question on bipartite graphs which you can read here
I got the recommendation on NetworkView
It has loops, vertex labeling, a custom vertex visualisation that you can easily edit to be circles. Think it has no edge labelling, though. Just give it a try.
At least it is a very good start if you decide to do it on your own.
You probably want to have a look on the Codeproject article "Visualize a graph with circular dependencies"