I have used opticlean for years with complete success. Its a polymer that you paint on the lens, allow to dry and then peel off, taking dirt and fingerprints etc with it. See the details and link to suppliers here
http://www.caliope.co.uk/,
It sounds very scary, particularly given the cost of a lens, but doesn't do the harm that rubbing the surface of the lens with brushes, cloths etc can.
There is a bit of a knack to using it so practise on your least expensive bit of glass. Obviously this is something that is best done at home rather than in the field so other emergency measures may still be required when out and about.