Just a small comment on this one. As far as PDEs (deterministic) are concerned we have the notion of a "strong solution" (directly solving the differential operator in the strong formulation of the problem) and the "weak solution" that attacks a weak formulation of the problem.
For the strong formulation, finite differences are the way to go since they are the natural discretization of the differential operator.
For the weak formulation, finite element methods are the way to go since they directly tackle the weak formulation of the problem by restricting it to a finite dimensional space (depending on which type of "element-functions" or basis-functions you choose for this space).
The finite difference method has problems with complex geometries and adaptive meshes - the geometry will not be a problem in option pricing since you always consider the rectangle $[0,T]\times[S_\text{min}, S_\text{max}]$. Local refinement can be a problem - but it depends on the equation and the initial/boundary condition. Further more, for some (nonlinear) differential equations, problems with disconutities occur and you can end up with oscillation effects. There are schemes that circumvent problems like this but you have to invest into the algorithm.
The finite element method is a more general notion. Since SPDEs are defined by their (Ito-) integral formulation an approach that approximates an integral-formulation will feel more natural. Thats because the payoff of a European Call (S-Variable) and the Brownian motion paths (t-Variable) are both not differentiable. Using finite difference methods for SPDEs most natural discretizations for "differential operators" does not give you the right scheme as far as I know. That would be another hint that points into the finite element direction a little bit.
One problem with comparing the performance of the two is definitely that there are so many different schemes (implicit/explicit of different ordes for finite differences and choices of basis functions and local refinement techniques for finite elements) that it is impossible to say. Maybe for some choice of model and initial/boundary condition one method will outperform the other but I think its hard to generalize.