Polar codes have attracted much recent attention as the first codes with low
computational complexity that provably achieve optimal rate-regions for a large
class of information-theoretic problems. One significant drawback, however, is
that for current constructions the probability of error decays
sub-exponentially in the block-length (more detailed designs improve the
probability of error at the cost of significantly increased computational
complexity \cite{KorUS09}). In this work we show how the the classical idea of
code concatenation -- using "short" polar codes as inner codes and a
"high-rate" Reed-Solomon code as the outer code -- results in substantially
improved performance. In particular, code concatenation with a careful choice
of parameters boosts the rate of decay of the probability of error to almost
exponential in the block-length with essentially no loss in computational
complexity. We demonstrate such performance improvements for three sets of
information-theoretic problems -- a classical point-to-point channel coding
problem, a class of multiple-input multiple output channel coding problems, and
some network source coding problems