We present a new approach to Poincare duality for Cuntz-Pimsner algebras. We
provide sufficient conditions under which Poincare self-duality for the
coefficient algebra of a Hilbert bimodule lifts to Poincare self-duality for
the associated Cuntz-Pimsner algebra.
With these conditions in hand, we can constructively produce fundamental
classes in K-theory for a wide range of examples. We can also produce
K-homology fundamental classes for the important examples of Cuntz-Krieger
algebras (following Kaminker-Putnam) and crossed products of manifolds by
isometries, and their non-commutative analogues.