This paper considers the problem of density estimation and clustering in sensor networks. It is assumed that measurements of the sensors can statistically be modeled by a common Gaussian mixture model (GMM). In this paper, a distributed expectation maximization (DEM) algorithm is developed to estimate the model order and the parameters of this model. Scalability and fault tolerance are two important advantages of this method. In the E-step of this algorithm, each node calculates local sufficient statistics using its local observations. A distributed averaging approach is then used to diffuse local sufficient statistics to neighboring nodes and estimate global sufficient statistics in each node. In the M-step, each node updates parameters of the GMM using the estimated global sufficient statistics. Diffusion speed and convergence of the proposed algorithm are also studied. The proposed method is then used for environmental monitoring and also distributed target classification. Simulation results approve the promising performance of this algorithm.