For my home network, I collect something like
a: Bytes in/out for laptop A
b: Bytes in/out for laptop B
...etc...
z: All other in/out traffic not previously accounted for
Then, I graph a,b,...z as a stacked userdefined graph, with the 'total' option -- this adds an additional non-stacked line for (a+b+...+z) over the top of the graph.
I don't have the code on hand for this, but it's pretty simple... just add Targets for a, b, ... z and then add the 'routers.cgi*Graph[]:mygraph total' directive to each of them. Finally add 'routers.cgi*GraphStyle[mygraph]:stackmirror' to get the new graph stacked and mirrored (or use options:noo and GraphStyle stack)
My data is collected by having a special logging chain set up in iptables on the linux router with rules for the various source IPs, plus a catch-all rule at the end, and querying the per-rule octet counts.
This is explained in the example in section 6.2 of Chapter 7 in the MRTG/RRD/Routers2 book...
http://www.steveshipway.org/book (pp186-189 in the Second Edition)