This paper describes a new inverse solver for optical tomography. As with prior studies, we employ an iterative perturbation approach, which at each iteration requires the solution of a forward problem and an inverse problem. The inverse problem involves the solution of a linear perturbation equation, which is often severely underdetermined. To overcome this problem, we propose to represent the unknown image of optical properties by a set of linearly independent basis functions, with the number of basis functions being equal to or less than the number of independent detector readings. The accuracy of the solution depends on the choice of the basis. We have explored the use of the weight functions associated with different source and detector pairs (i.e. the rows in the weight matrix of the perturbation equation) as the basis functions. By choosing those source and detector pairs which have uncorrelated weight functions, the inverse problem is transformed into a well-posed, uniquely determined problem. The system matrix in the transformed representation has a dimension significantly smaller than the original matrix, so that it is feasible to perform the inversion using singular value decomposition (SVD). This new method has been integrated with a previously reported forward solver, and applied to data generated from numerical simulations using diffusion approximation. Compared to the Conjugate Gradient Descent (CGD) method used in previously reported studies, the new method takes substantially less computation time, while providing equal, if not better, image reconstruction quality at similar noise levels.