For regular GraphPlot you will need a slightly more complex solution using the EdgeRenderingFunction ( documentation ). Suppose you have an adjacency matrix, where the elements are also (directional) weights.
lilnums = {{0, 2., 1., 3., 0, 6.}, {0, 0, 1., 2., 0, 0}, {1., 8., 0, 2., 0, 2.}, {10., 13., 7., 0, 0, 10.}, {0, 0, 0, 0, 0, 0}, {4., 1., 1., 2., 2., 0}}
Here are a few labels for peaks if you draw network diagrams for international interbank exposures (the original has a lot more countries!).
names = {"AT", "AU", "CA", "CH", "CL", "ES"}
The following does what you need. The tricks are a reference to the adjacency matrix, using parts #2 inside the part specification to refer to the correct nums and Mean[#1] elements to find the label in the middle of the edge. Slot #1 seems to contain vertex coordinates.
GraphPlot[lilnums, DirectedEdges -> True, VertexRenderingFunction -> ({White, EdgeForm[Black], Disk[#, .04], Black, Text[names[[#2]], #1]} &), EdgeRenderingFunction -> ({AbsoluteThickness[2], Red, Arrowheads[0.02], Arrow[#1, 0.05], Black, Text[Round@ Abs[(lilnums[[#2[[1]], #2[[2]]]] + lilnums[[#2[[2]], #2[[1]]]])], Mean[#1], Background -> Yellow]} &), VertexLabeling -> True, ImageSize -> 600, PlotLabel -> Style["Plot Label", Bold, 14, FontFamily -> "Arial"]]
