www.epassportphoto.com, which comes highly recommend on many expat websites.
I wouldn't recommend this service if I wasn't genuinely pleased with the service (I'm not being paid). Basically you just upload your photo for free, use their online tool (also free), and send it to CVS like you would a regular photograph. Cost is under $1. I chose to use their premium service because I wanted to be certain a professional looks at the photo and makes sure it's correct (I'm on a truncated time table). For just about $12 (plus the extra dollar when you pick them up), they crop the photo to U.K. Passport/Visa standards, and send it directly to your chosen pharmacy (in my case that same CVS) using their normal photo printer (like what's used for normal photographs). About an hour later I received an email that my visa photos were ready to be picked up in my name. I paid the clerk a total of .58 for two 4x6 photos, each which had four of the necessary U.K. visa pictures printed out. I cut out two, and I'm sending the rest un-cut with my application (in case they'd prefer to cut them more precisely) in an envelope.
What's interesting about this tool is that it's as cheap as CVS's typical passport service, but you're getting professional help here. It's shocking how little some of these small town pharmacies know about international travel, and getting it right is especially comforting when you're visa costs over $500.
I should mention they do other countries, including the U.S.A. They recommend using a smart phone on any white background, but the kind associates at CVS permitted me free use of their professional passport photo screen, and I used my 5MP phone to take several shots till I found one acceptable.
So if you're a U.K. national renewing a passport, or a U.S. student filing for a visa, I highly recommend epassportphoto for making the picture i.d. portion a whole lot easier.