+1 to the Mighty Mug as it's designed to solve this specific problem.
Also consider getting a sippy cup lid or a SipSnap (see NPR's "Turn Any Cup Into A Spillproof Sippy Cup") which are designed to not spill when knocked over (in most design cases, by kids, but these can also solve the problem for cats and stray elbows).
Finally, keep in mind that mugs that are shorter and wider (especially at the base) will have a lower center of gravity and be harder to knock over than something taller and skinnier. In an extreme case, you could glue/fasten the bottom of your drinking cup on to a flat platform (piece of lead or something wide/heavy), to provide a stable base and give your arm a bit more of a workout each time you go to lift it up for a drink.