I'd guess a [QR decomposition](http://en.wikipedia.org/wiki/QR_decomposition) is better than solving the normal equations and faster than SVD.

There are some [class notes](http://classes.soe.ucsc.edu/cmps290c/Spring04/paps/lls.pdf) that compare the three approaches.