I used XMonad for many, many years. During these years it served me well and I really loved it. However I switched to AwesomeWM about 2 years ago and couldn't be happier. I was able to easily make Awesome behave just like xmonad for parts I cared about, so the transition was pretty painless.
Top 3 reasons I switched:
1. Multi monitor support is far better with awesome and it worked perfectly out of the box with my 3 displays.
2. Programs that were a bit glitchy under xmonad had no such glitches under awesome.
3. LUA configuration files make it far easier for me to customize behavior and extended it. With Xmonad's Haskell I always felt like a noob.