I think the link I provided sums it up quite well; The use-case for it is when you log a sequence of events from different parts of your application, and want some thread-local stuff to be logged as well.
Think of a HTTP-request; at first you have a servlet-filter (or whatever) setting the key on MDC (and removing it again when request is finished). Then all logging done by services, views, whatever, logs the same key (and preferably also the username) making it possible to use those for connecting log-statements belonging to the same HTTP-request, and for what user. It’s insane to think that this info is available at every point of logging throughout the application. Log4J handles this just fine and I think this might prevent lots from switching to a framework which doesn’t support it.