What's the difference between cohomology theories of varieties and topological spaces
First, it is not quite true that there is "only one cohomology theory" for topological spaces. One should rather say that there are several such theories, but that for reasonable spaces, they give the same results.
The reason why this is true in a category of reasonable topological spaces is that nice topological spaces can be "built up" from smaller ones in various ways, (for instance, see the definition of a CW complex). From the Eilenberg-Steenrod axioms, one can formally calculate the cohomology of an interval, and then a circle, and then a sphere, and so on. The Eilenberg-Steenrod axioms are sufficient to calculate the cohomology of any space which is "built up" from the point using a few basic operations.
In the world of algebraic geometry, this is pretty much impossible. Algebraic varieties cannot in general be decomposed into simpler algebraic varieties by any process. The situation is much more "rigid". For instance, there is no way to deduce the cohomology of an algebraic curve from the cohomology of a point using simple axioms, despite algebraic curves being the simplest objects after the point.
A big difference between topological spaces and varieties is that, for topological spaces, we can define $H^{\ast}(X, \mathbb{Z})$ where as, for varieties, there is no cohomology theory with coefficients in $\mathbb{Z}$. (I've blogged about this here and here; the examples I'm giving are originally due to Serre.) This is important because, in the topological setting, we have the universal coefficient theorem which says that $H^{\ast}(X, A)$, for any ring $A$, can be computed from $H^{\ast}(X, \mathbb{Z})$. For varieties, there is no universal theory to play the same role. (Although, as I imagine you know, motives are an attempt to come as close as possible.)