  We study the problem of constructing universal Steiner trees for undirected
graphs. Given a graph $G$ and a root node $r$, we seek a single spanning tree
$T$ of minimum {\em stretch}, where the stretch of $T$ is defined to be the
maximum ratio, over all terminal sets $X$, of the cost of the minimal sub-tree
$T_X$ of $T$ that connects $X$ to $r$ to the cost of an optimal Steiner tree
connecting $X$ to $r$ in $G$. Universal Steiner trees (USTs) are important for
data aggregation problems where computing the Steiner tree from scratch for
every input instance of terminals is costly, as for example in low energy
sensor network applications.
  We provide a polynomial time \ust\ construction for general graphs with
$2^{O(\sqrt{\log n})}$-stretch. We also give a polynomial time
$\polylog(n)$-stretch construction for minor-free graphs. One basic building
block of our algorithms is a hierarchy of graph partitions, each of which
guarantees small strong diameter for each cluster and bounded neighbourhood
intersections for each node. We show close connections between the problems of
constructing USTs and building such graph partitions. Our construction of
partition hierarchies for general graphs is based on an iterative cluster
merging procedure, while the one for minor-free graphs is based on a separator
theorem for such graphs and the solution to a cluster aggregation problem that
may be of independent interest even for general graphs. To our knowledge, this
is the first subpolynomial-stretch ($o(n^\epsilon)$ for any $\epsilon > 0$) UST
construction for general graphs, and the first polylogarithmic-stretch UST
construction for minor-free graphs.
