It's a flat 20%. The fixed the modifier bug in Wrath.
For MW Monks: Haste RATING is additive, haste itself is a percentage. That means while the former is linear, the latter is close but not always perfect. For EM your breakpoints are 8.29%, 24.92, 41.75%, 58.35% etc. Take that ~ +17 and start it at 8 etc. 75 (12), 92 (13), 109 (14), 126 (15) etc.
Edit: How haste works, for fun, from a raiding perspective.
Haste is pretty obvious as a state from a hands-off approach. Most spells (being either not a HoT or a DoT) interact pretty obviously with haste. More haste, faster cast. You can calculate this by a simple equation:
Spell Casting Time
---------------------
1 + Haste
I'm not going to explain GCD's because frankly if it matters to you, you already know what needs to be known. If you don't, don't worry about it.
HoT's (Heals over Times, Dots over Time blah blah) are different because it doesn't affect the time of the spell but the interval. That means if a spell is 6 ticks over 8 seconds, you will now get more TICKS over 8 seconds (ie 8,10, 14 ticks over 8 seconds) but the 8 seconds itself won't change. This is obviously good because now instead of 8 ticks for 100 damage each over 8 seconds (800 damage total) you are doing 15 ticks for 100 damage total over 8 seconds (1500 damage).
Now why does this work this way? It's because of the way WoW works. When you get enough haste that you go half a tick OVER the initial value (meaning if you were supposed to get 6.5 ticks and not 6 ticks because you have enough haste, it will push it over to 7 ticks); that's referred to as the breakpoint.
So essentially, you are aiming to reach for that extra percentage necessary for that extra tick. If you can get there, this is almost always a better value than ANY OTHER STAT that you have over LONG TERM healing.
So for example, if you're a mistweaver using Renewing Mist, there are two things coming into play here. First, tick intervals and second the method by which ReM works. ReM only jumps to