A better question would be "What aren't graphs used for?". Computer Science is, in many respects, the study of Graphs.
A graph, in laymen's terms, is a collection of arbitrary abstract objects called "nodes" or "vertices" that represent points of connection. They are then connected via "paths" or "edges". The abstract data type "Graph" is an implementation of the mathematical "Graph". So basically you have nodes and edges as your fields and various operations you can perform on them. You can, for instance, add a new node to the graph's collection (this could be a list or an array or some other structure depending on the language). You could then link that node to existing nodes. Operations would also be include traversing the graph, checking whether two nodes share an edge (are connected), retrieving values from nodes or edges, and the deletion of nodes or edges from the graph.
As far as utilization goes, Graphs are used all over the place. Networking makes particularly heavy use of them but they are found in Artificial Intelligence, Data Mining, Game Development, Geoinformatics, and a host of other disciplines. In formal Computer Science, they see even more use, namely as a way of representing state.
Effectively anything that you can represent as a set of connections can be represented as a graph and implemented via that ADT in some form.
Here's an example graphic I made:
