We propose a new iterative detection and decoding algorithm for multiple-input multiple-output (MIMO) based on expectation propagation (EP) with application to massive MIMO scenarios. Two main results are presented. We first introduce EP to iteratively improve the Gaussian approximations of both the estimation of the posterior by the MIMO detector and the soft output of the channel decoder. With this novel approach, denoted by double-EP (DEP), the convergence is very much improved with a computational complexity just two times the one of the linear minimum mean square error (LMMSE), as illustrated by the included experiments. Besides, as in the LMMSE MIMO detector, when the number of antennas increases, the computational cost of the matrix inversion operation required by the DEP becomes unaffordable. In this work we also develop approaches of DEP where the mean and the covariance matrix of the posterior are approximated by using the Gauss-Seidel and Neumann series methods, respectively. This low-complexity DEP detector has quadratic complexity in the number of antennas, i.e., the same as the low-complexity LMMSE techniques. Experimental results show that the new low-complexity DEP achieves the performance of the DEP as the ratio between the number of transmitting and receiving antennas decreases