Wal Mart will do a great job. There is a clear coat over the lens and it gets scratched up. The old damaged clearcoat needs to be sanded off and a new coat of clearcoat sprayed back on and they will be good as new. I paid a special price of about $50 if I remember right. I believe Jiffy Lube can do the job as well for around $80. I tried the do it yourself kits and nothing worked as well as elbow grease, fine grit wet/dry sandpaper and new clearcoat.
I had my DW Beemer done four years ago and the lenses still looked great when I sold the car last year.