for uneven slabs, you either have to poor the self leveling stuff, depending on how big the surface is, this might or might not be a good solution. A good concrete contractor can help with that, definitely not for a new DIY'er.
The other alternative is what you mentioned, a subfloor. you use...