The focus of this paper is on spatial precoding in correlated multi-antenna channels where the number of independent data-streams can be adapted to trade off the data rate with the transmitter complexity. A structured precoding scheme is proposed, where the precoder structure evolves fairly slowly at a rate comparable with the statistical evolution of the channel, and in addition, enjoys low-complexity. A particular case of the proposed scheme, semiunitary precoding, is shown to be nearoptimal in matched channels where the dominant eigenvalues of the transmit covariance matrix are well-conditioned and their number equals the number of independent data-streams, and the receive covariance matrix is also well-conditioned. In mismatched channels where the above conditions do not hold, it is shown that the loss in performance with semiunitary precoding when compared with a perfect channel information benchmark is substantial. This loss can be mitigated via limited feedback techniques that provide partial channel information to the transmitter. We also develop matching metrics that capture the degree of matching of a channel to the precoder structure continuously, and allow ordering two matrix channels in terms of their mutual information or error probability performance.