Beacons are a very new feature in Salt, but they've already gained quite a following. In past versions of Salt, if a third-party process needed to raise an event inside Salt, it would have to explicitly make a call to Salt to do so. Beacons overcome this by allowing events to be triggered by third-party processes without having to perform any work inside that process itself.
As you can imagine, beacons were designed for monitoring, and specifically, for alerting purposes. While monitoring states are fairly passive, in which they only run when called explicitly or via the scheduler, beacons are very proactive, in which they are constantly watching for changes.