Well, inheritance specifies an "is a" relationship, so you'd use multiple inheritance when a class "is" multiple different things. For example, a deque is both "BackInsertable" and "FrontInsertable". BackInsertable could force a requirement for a push_back method and likewise for FrontInsertable and push_front. Without multiple inheritance, you'd have to have super classes for BackInsertable, FrontInsertable, and BackAndFrontInsertable. Obviously this doesn't scale well when you add more complexity.
The problems with multiple inheritance arise when two super classes define the same member variables, or when you run into the diamond problem (D1 and D2 inherit B, and D3 inherits D1 and D2, inheriting B twice).
People don't like it because it's very easy to run into these problems accidentally. As Antiguru said though, it's not so much that people dislike multiple inheritance, they just dislike C++'s implementation of it (and of course, you have people who just loathe object oriented programming altogether, and to them, multiple inheritance is pure evil).