I did this for the first time recently, using suggestions from mathSE.
SVD was recommended by most I think, but I opted for the simplicity of Cholesky:
If matrix $M = A A^\top$, then I decompose $M$ to a triangular matrix $L$ using Cholesky, such that $M = L L^\top$. I then use backsubstitution or forwardsubstitution (depending on whether I choose L to be upper or lower triangular), to invert $L$, such that I have $L^{-1}$. From this, I can quickly calculate $M^{-1} = \left(L L^\top\right)^{-1} = L^{-\top}L^{-1}$.
Start with:
$M = A A^\top$, where $M$ is known and is implicitly symmetric and is also positive-definite.
Cholesky factorisation:
$M \rightarrow L L^\top$, where $L$ is square and non-singular
Back-substitution:
$L \rightarrow L^{-1}$, probably the fastest way to invert $L$ (don't quote me on that though)
Multiplication:
$M^{-1} = \left(L L^\top\right)^{-1} = L^{-\top} L^{-1}$
Notation used:
Lower indices are rows, upper indices are columns and $L^{-\top}$ is the transpose of $L^{-1}$
My Cholesky algorithm (probably from Numerical Recipes or Wikipedia)
$L_i^j = \frac{M_i^j - M_i \cdot M_j}{M_i^i - M_i \cdot M_i}$
This can almost be done in-place (you only need temporary storage for the diagonal elements, an accumulator and some integer iterators).
My back-substitution algorithm (from Numerical Recipes, check their version as I may have made a mistake with the LaTeX markup)
$\left(L^{-1}\right)_i^j = \left\{\begin{array}{11}
1 / {L_i^i} & \mbox{if } i = j\\
\left(-L_i \cdot \left(L^{-T}\right)_j\right) / L_i^i & \mbox{otherwise}
\end{array}\right.$
As $L^{-T}$ appears in the expression, the order that you iterate over the matrix is important (some parts of the result matrix depend on other parts of it that must be calculated beforehand). Check the Numerical Recipes code for a complete example in code.
[Edit]: Actually, just check the Numerical Recipes example. I've over-simplified too much by using dot-products, to the point that the above equation has a cyclic dependency no matter what order you iterate...