  This paper addresses questions of quasi-isometric rigidity and classification
for fundamental groups of finite graphs of groups, under the assumption that
the Bass-Serre tree of the graph of groups has finite depth. The main example
of a finite depth graph of groups is one whose vertex and edge groups are
coarse Poincare duality groups. The main theorem says that, under certain
hypotheses, if G is a finite graph of coarse Poincare duality groups then any
finitely generated group quasi-isometric to the fundamental group of G is also
the fundamental group of a finite graph of coarse Poincare duality groups, and
any quasi-isometry between two such groups must coarsely preserves the vertex
and edge spaces of their Bass-Serre trees of spaces. Besides some simple
normalization hypotheses, the main hypothesis is the ``crossing graph
condition'', which is imposed on each vertex group G_v which is an
n-dimensional coarse Poincare duality group for which every incident edge group
has positive codimension: the crossing graph of G_v is a graph e_v that
describes the pattern in which the codimension~1 edge groups incident to G_v
are crossed by other edge groups incident to G_v, and the crossing graph
condition requires that e_v be connected or empty.
