I've been using Purosol Lens Cleaner for a couple years now (still have the same 4 oz bottle) on lens elements and filter. Simply put it is fantastic, and I've yet to find anything comparable--at any price. The Zeiss lens cleaner, leaves streaky residue on every type of surface as does 99.98% alcohol (used for cleaning electronics). I won't mention some of the cheap alternatives I've tried, because they all sucked too. Purosol leaves no streaks, though you will see negative reviews from glasses wearers saying it does (mainly because they aren't patient and deliberate enough in their cleaning process). For glass with dust, you're better off with a rocket blower (as the particles can scratch glass surfaces if rubbed with a cloth)...but for oil, water spots, etc this stuff is great.
With oil (like the kind that comes from skin) it may take two separate attempts. First use a blower to remove any large and loose dust, then spray a clean cloth a few times and clean the glass surface (essentially this step only loosens the oil up), then a couple more sprays on the other side of the cloth to remove the remaining residue. A couple blows of air to remove the fibers and your lens or filter with be cleaner than the day you got it.
http://www.amazon.com/Purosol-Natural-Lens-Cleaner-4oz/dp/B000W8OZE2