The orthogonal-time-frequency-space (OTFS) modulation has emerged as a promising modulation scheme for high mobility wireless communications. To harvest the time and frequency diversity promised by OTFS, some promising detectors, especially message passing based ones, have been developed by taking advantage of the sparsity of the channel in the delay-Doppler domain. However, when the number of channel paths is relatively large or fractional Doppler shifts have to be considered, the complexity of existing detectors is a concern, and the existing message passing based detectors suffer from performance loss. In this work, we investigate the design of OTFS detectors based on the approximate message passing (AMP). In particular, leveraging the unitary AMP (UAMP), we design new detectors that enjoy the structure of the channel matrix and allow efficient implementation. In addition, the estimation of noise variance is incorporated into the UAMP-based detectors. Thanks to the robustness of UAMP relative to AMP, the UAMP-based detectors deliver superior performance, and outperform state-of-the-art detectors significantly. We also investigate iterative joint detection and decoding in a coded OTFS system, where the OTFS detectors are integrated into a powerful turbo receiver, leading to considerable performance gains.