Preconditioning techniques for the iterative solution of scattering problems