Database Mirroring is supported in both Enterprise Edition (asynchronous + synchronous modes) and Standard Edition (synchronous mode). Up till SQL Server 2016, Availability Groups is supported only in Enterprise Edition. Starting SQL Server 2016, Availability Groups is supported in Standard Edition, but with a limited functionality Ė one secondary, one database per Availability Group, and that database is not readable, unless you take a snapshot of it.
Database Mirroring can work without a domain
Because AlwaysOn Availability Groups works on top of Windows Cluster, it requires working in a domain. Database Mirroring, however, allows working in domain-less environments using certificates, in addition to the option of working in a domain.
It was pointed out to me that starting Windows Server 2016 and SQL Server 2016, non-domain Availability Groups are supported. Mirroring is still easier ad supports more platforms, but definitely a good addition to the product!
Database Mirroring requires less IP addresses
With Mirroring, you need an IP address for the Principal, for the mirror, optionally for the Witness, and youíre good to go. With Availability Groups, you need an IP address for the each one of your replicas, for the cluster, and optionally for the cluster witnesses and Availability Group Listeners.