Disclaimer: I am one of the MATLink developers.
Some of you have already seen it, but for those that haven't, I would like to present the
MATLink package available at matlink.org:

This package makes it possible to transfer data between Mathematica and MATLAB as well as seamlessly call MATLAB functions from Mathematica. Some example applications are shown as
http://matlink.org/examples/
As of version 1.0, the package can:
- Transfer data (variables) between the two systems in both directions. Most MATLAB data structures are supported, including sparse arrays, cells and structs.
- Wrap MATLAB functions in the MFunction head and call them directly. Arguments and return values are translated automatically.
- It works on all three common platforms (Windows, Mac, Linux).
Note that version 1.0 does not make it possible to call Mathematica functions from MATLAB, only the reverse. It is useful if Mathematica is your primary work environment but you need to use some MATLAB functionality in your Mathematica code.
Here's a transcript of a short MATLink session as a deomonstration:
In[1]:= << MATLink`
In[2]:= OpenMATLAB[] (* start MATLAB *)
In[3]:= mat = RandomReal[1, {5, 5}]; (* create random matrix *)
In[4]:= MEvaluate["help eig"] (* get help on the eig() MATLAB function *)
Out[4]= ">> EIG Eigenvalues and eigenvectors.
E = EIG(X) is a vector containing the eigenvalues of a square
matrix X.
...
"
In[5]:= MFunction["eig"][mat] (* calculate eigenvalues using MATLAB *)
Out[5]= {{2.62592 + 0. I}, {-0.0575 + 0.555101 I}, {-0.0575 - 0.555101 I}, {0.558724 + 0. I}, {0.128974 + 0. I}}
In[6]:= Sort@Flatten[%] == Sort@Eigenvalues[mat] (* check that the result is the same that Mathematica gives *)
Out[6]= True