Distribute[f[, , ... ]] distributes f over Plus appearing in any of the .
Distribute[expr, g] distributes over g.
Distribute[expr, g, f] performs the distribution only if the head of expr is f.
Distribute effectively implements the distributive law for operators f and g.
Distribute explicitly constructs the complete result of a distribution; Expand, on the other hand, builds up results iteratively, simplifying at each stage.
Example: Distribute[f[a+b,c+d]] .
Distribute[f[a+b,g[x,y],c], g] .
Distribute[expr, g, f, gp, fp] gives gp and fp in place of g and f respectively in the result of the distribution.
See The Mathematica Book: Section 2.2.10.
See also: Expand, Thread, Outer, Inner.