Networking at any time and any place paves the way for a large number of possible applications in ad hoc networks, from disaster relief in remote areas to network extension. Thus, for the past decades, many works have been proposed trying to make ad hoc networks a reality. The importance of broadcasting in networking and the broadcast nature of the wireless medium have encouraged researchers to join their efforts on designing efficient dissemination algorithms for Mobile Ad Hoc Networks (MANETs). The many different challenges that MANETs face, such as limited network resources, network partitions, or energy restrictions, gave rise to many different approaches to overcome one or more of those problems. Therefore, literature reveals a huge variety of techniques that have been proposed for efficient message dissemination. In this article, we make an in-depth review of the existing state-of-the-art techniques, as well as propose a new taxonomy that provides a global overview of the most relevant existing algorithms.