On a closed, oriented manifold, homology and cohomology are represented by similar objects, but their variance is different and there is an important change in degrees. For simplicity, consider homology or cohomology classes represented by submanifolds. Then if $f : M \to N$ is a smooth map between manifolds of dimension $m$ and $n$ respectively and $W$ is a submanifold of $M$ representing a homology class then $f(M)$ represented (really, $f_*([M])$ is) a homology class of $N$, in the same dimension. On the other hand, if $V$ is a submanifold of $N$, then we can consider $f^{-1}(V)$, which is a manifold if $f$ is transverse to $F$. Its codimension is the same as that of $V$ (that is, $n - dim(V) = m - dim(f^{-1}(V))$).
Note that this preimage is generically at least as "nice" as $V$ (smooth is $V$ is, with reasonable singularities if $V$ has, etc.) whereas little can be said about the geometry of $f(W)$. That's one reason I think that cohomology is of more use in algebraic geometry.
If you want to relate this view of cohomology to the standard one, a codimension $d$ submanifold of $M$ (that is, one of dimension $m-d$) generically intersects a dimension $d$ one in a finite number of points which can be counted with signs. The former defines a class in $H^d(M)$ while the latter a class in $H_d(M)$, and this intersection count is evaluation of cohomology on homology.
This point of view is more applicable than it might seem since in a manifold with boundary cohomology classes are similarly defined by submanifolds whose boundary lies on the boundary of the ambient manifold. Since any finite CW complex is homotopy equivalent to a manifold with boundary, one can view cohomology in this way for finite CW complexes and often infinite ones as well.