If you have access to the Statistics Toolbox, you can use the GMDISTRIBUTION class to fit a Gaussian Mixture Model using the EM algorithm.
Here is an example:
%# sample dataset
load fisheriris
data = meas(:,1:2);
label = species;
%# fit GMM using EM
K = 2;
obj = gmdistribution.fit(data, K);
%# assign points to mixtures: argmax_k P(M(k)|data)
P = posterior(obj, data);
[~,mIDX] = max(P,[],2);
%# GMM components
obj.mu %# means
obj.Sigma %# covariances
obj.PComponents %# mixture weights
%# visualize original data clusters
figure
gscatter(data(:,1), data(:,2), label)
%# visualize mixtures found
figure
gscatter(data(:,1), data(:,2), mIDX), hold on
ezcontour(@(x,y)pdf(obj,[x y]), xlim(), ylim())

If not, check out the excellent Netlab Toolbox, as it has GMM implementation.