It's an Ace-based addon that I hacked together (it's not on wowace ATM). Usual caveats apply re: .zip files from untrusted sources.
It's dirt-simple to use - just mark a pack once, wave your mouse over the pack. Then you can easily reapply those markings next pull:
Mark raid targets with icons. /mm rec
Wave mouse over marked mobs. The addon will report which marked targets it has moused over and recorded. /mm rec again to toggle recording off.
Find next batch of mobs. /mm mark
Wave mouse over unmarked mobs; they will get icons. /mm mark again to toggle marking off.
Pull and kill. etc.
Basically, it tries to mark each mob that it sees with the highest raid icon that's ever been recorded on that mob that's not already been used for this round of marking (if you put a skull on something but don't mouse over it during /mm mark it will most likely get moved).
The addon also has a rough notion of priority - if mob type A gets a skull every time, while type B only gets a skull if there aren't any As around, then it will note that: priority[skull] = [A, B]. If you mouse over B it will get marked with a skull. If then you mouse over an A, it will see that A's skull priority is higher than B's, and so will unmark B and give the skull to A. Mousing over A first will leave the skull locked onto A. This part hasn't gotten much testing, so I'm curious if there are any corner cases I've missed (still getting the tanks in my guild to install it and get used to using it). Think early beta, though the code is pretty simple, so I hope I haven't flubbed it up too badly.
On the todo list is a way to forget everything about a given mob (right now if something gets recorded with incorrect markings, you have to edit the saved vars .lua file). Also, it assumes that if it has a choice between two icons, the higher numbered one is correct (ie. skull before X, tri before moon, etc.). It needs a way for that priority list to be customized.
I've used this in several raids. It does make marking targets faster, however, it doesn't appear to be saving settings between sessions. Which limits its use. I bound a macro for marking to an easy to reach key, so it's pretty quick to mark once I have them recorded.