I typically use Mathematica to prototype ideas. When they pan out, I integrate them with existing code written in c or Python. That Mathematica excels at symbolic manipulation as well as numerical solutions while having excellent visualization tools makes it invaluable.
In particular I love to build up some complicated function of many variables and wrap a Plot[] command in a Manipulate[] command so that I can drag the slider bars around and see how the shape of the function changes. This allow for me to get an intuitive understanding of the problem.
I use it mostly for exploratory data analysis. I'm pretty quick with making plots in it (I've used it since v1.2), so I tend to use it for reading in a data set, and them playing around with it. It can handle datasets in the hundreds of thousands of points (still in memory) pretty quickly. You can plot 200k points a series without it slowing down.
On those rare occasions I need to solve equations or do some calculus, there's nothing better.
Me too. I still use it quite frequently. One example where I've used it many times is to debug encryption algorithms. Mathematica can usually handle the most natural form of the Algorithm allowing you to compare the results with optimized low level code.
Given symbolic manipulation, Mathematica allows you to frame your problem without stating how to solve it, even though it would nearly always need some help. I often do the math by hand anyways beforehand for the purpose and to understand what is going on, but Mathematica subsequently allows automating and easier maintenance.
While this could be an extensive debate, I prefer Mathematica to Matlab whenever there is an option. I am a heavy user of both, though have never used Symbolic toolbox in Matlab. It starts a lot more complex in Mathematica, but becomes significantly more powerful shortly thereafter.
EDIT: Mathematica can do almost anything, but how do you use it actually in your work environment?