I once used successive, thin coats of joint compound to skim over a cinderblock wall to make it suitable for some expensive wallcoverings. Though it does take some practice and some elbow grease, I suspect that it's the best solution to your situation. With most surfaces that I'm going to skim, I apply a coat of V.O.V. adhesive that I've thinned to make it brushable. This adesive, when fully cured, sticks like burnt rice in your wife's best cookware, and makes the perfect bonder for joint compound. Apply successuve coats of joint compound, as thin as possible, switching directions for each coat and allowing to dry completly before following with the second coat. With practice, you can make a surface that almost doesn't need to be sanded before painting. When I do several adjoining walls, I will skim horizontally on the first wall and then vertically on the second and so on, the reason for this will be obvious once you've done it.
Other than this, the only thing I could suggest is to do a sponge painting or a ragging technique. These finishes are great for hiding imperfections in your walls. There was another finish I have done using tissue paper that I don't have time to go into right now, but if you wish for details, e'mail me and I'll get back to you on it.