There isn't one, really. I've heard good things about CFS.
An ideal SSD scheduler would need to perform read/write grouping, but only within the SSD blocks (with a read block and a write block being different sizes). Grouping across a block boundary is pointless for an SSD, you'd be better off letting the request at the top of the queue go. For a spinning disk, grouping is important all the time, thanks to it essentially being one continuous spiral track (close enough anyway).