First off: Closures are not everything you describe as such. The concept of functions as first-class objects is related - although pretty much a prerequisite for closures - and anonymous functions are not really related (you usually have both in the same languages, but still, neither is required for the next).
I have come to the conclusion that to appreciate closures and to put them to good use, one needs to adopt a slightly more functional mindset. For example: When using higher-order functions (functions that return functions), the need for closures arises quite often (basically, every time the returned function needs to access the higher order function's arguments) and they are in fact the most natural solution. If you're writing a class to serve as an accumulator factory instead of a higher-order function, of course the closure won't fit in.
As a concrete example: I'm just writing a (small-ish, limited, kind-of) parser generator for XML defined in some relatively weird (but luckily, simple - XML abused as database, the kind of job JSOn or YAML does better) XSD offshot. The parsers returned are functions and about every one of the parsers is a closure (closing over the schema representation by which it parses). I'd rather not type up classes for all of this.