Labeling vertices in a graph I don't fully understand what labeling vertices is for.
Why would I want to label a graph? And why for example, does Cayley's formula only apply to cases with labeled vertices? 
I understand it's meant to differentiate the vertices from each other, but how does this influence the number of trees on labeled vertices?
 A: Consider the very simple tree with one vertex of degree $2$ and two vertices of degree $1$. If I don’t label the vertices, all such trees are isomorphic: for all practical purposes there is only one such tree, though I can draw it in various ways. Two of these ways are shown below:
            *                     
           / \                  *--*--*  
          *   *

No matter how I draw it, the vertex of degree $2$ is adjacent to each of the other two vertices.
If I label the vertices with the numbers $1,2$, and $3$, however, there are $3$ distinguishable trees: the vertex of degree $2$ can always be distinguished from the other two vertices, since they have a different degree, so labelling that vertex $1$ is different from labelling it $2$ or $3$. The three labelled trees shown below are not the same when the labelling is taken into account:
        1--2--3           2--1--3              1--3--2

However, the first of these is indistinguishable from
        3--2--1

which is just the same labelled tree turned around: both have vertex $2$ as the unique vertex of degree $2$, and it is adjacent to each of vertices $1$ and $3$. It’s still the same labelled tree when I draw it in either of these ways:
           2                   2  
          / \                 / \  
         3   1               1   3

To give a concrete, everyday example, a family tree for one person extending back to the grandparents looks (in almost all cases) like this:
         D   E   F   G  
          \ /     \ /
           B       C
            \     /
             \   /
              \ /  
               A

The vertices are labelled with the names of the people involved. If you shift the labels around, you get a different family tree. A is a child of B, but if you interchange the labels A and B, you have a tree showing B as the child of A, a very different thing.
A: Because without labeling, the only thing that differentiates two trees is their shape.  Thus the number of unlabeled trees with $n$ vertices is the number of tree shapes with $n$ vertices.  With labeled vertices, two trees can have the same shape, but not be the same because in one node $x$ is connected to node $y$ and in the other, it's connected to node $z$ instead.
For a concrete example, consider the case where $n=4$.  Without labeling nodes, there are two possible trees: one where the nodes form a single path, and one where a "central" node is connected to all three other nodes.  If we label the vertices, the one-path shape has $4! \over 2$$=12$ versions ($4!$ ways to order the nodes along the path, divided by $2$ because we can start at either end), and the central-node shape has $4$ versions (one for each choice of a central node).
As to why you would want to label nodes, you would do so when you're modeling a situation where it matters which nodes are which.  In other words, nodes represent something that is distinguishable, and it matters how those things are connected by whatever the edges represent.  For instance, you could be modeling a social network, where edges are friendships.  If you're doing this in a general case, you probably don't want to label your nodes, because you don't know anything about the people in the network.  If you're modeling a specific social group, you may want to label your nodes, because the individual people are distinct, and who's friends with whom is relevant.
