i686 is optimized specifically for pentium II, but speeds up PentiumPro, Pentium II, K7 (athlon), and all CPUs after that (well, in most cases).
Some notes:
PenPro, PenII, PenIII, PenM, athlon, duron, sempron, and athlon64 all get speeded up about the same with i686 optimization (the first three are slightly more, usually).
P4's are speeded up the least, usually.
A few (aka "some", aka "not many", aka "not all") of the i686 optimizations actually slow down on p4's.
As of MinGW 3.0, i686 speed up about the same as athlon on athlons, p4 on p4s. Not sure about the newer 3.1 that mame is moving to, though.