The cleanest way I know how to do it is by creating a sparse matrix based on your data and indices:
[M,N] = size(Indices); indmax = max(Indices(:));
Result = sparse(repmat(1:N,M,1),Indices,Data,indmax,indmax);
Hopefully someone comes along and shows us an even cleaner method.