Why is cross-over a part of genetic algorithms?
Mutation is usually defined to be a global operator, i.e. iterated mutation is (eventually) capable of reaching every point in the vector space defined by the geneome. In that sense, mutation alone is certainly 'enough'.

Regarding the motivation for crossover - from Essentials of Metaheuristics, p42:


  Crossover was originally based on the premise that highly fit individuals often share certain traits, called building blocks, in common.
  For example, in the boolean individual 10110101, perhaps
  ***101*1 might be a building block 


(where * means "either 0 or 1") 

So the idea is that crossover works by spreading building blocks quickly throughout the population.


  Crossover methods also assume that there is some degree of linkage between genes on the chromosome: that is, settings for certain genes in groups are strongly correlated to fitness improvement. For example, genes A and B might contribute to fitness only when they’re both set to 1: if either is set to 0, then the fact that the other is set to 1 doesn’t do anything.


Also note that crossover is not a global operator. If the only operator is crossover then (also from p42):


  Eventually the population will converge, and often (unfortunately) prematurely
  converge, to copies of the same individual. At this stage there’s no escape: when an individual crosses over with itself, nothing new is generated.


For this reason, crossover is generally used together with some global mutation operator.