There is a lot of overlap in functionality, but I'd say that Matlab is better for numerical computations and Mathematica is better for symbolic computations.
Both, it will depend on the style you like to program your code.
Personally I prefer Mathematica over Matlab, but it is just because I am adapted to problem solving with Mathematica and I know more code so I can solve problems faster.