Maybe I’ve written about this before, but a lot of work with mixing/mastering has to do with frequency control, just let the right frequencies rule. If each piece of audio fits into a nice niche in the frequency spectrum, and are well-balanced, the whole sounds good. This compared with a muddy final production where everything is fighting about the same, usually middle-range, frequencies.
Another area to work on is the low-end and high end. Few instruments in underground dance music needs to operate below 100Hz — kicks and bass, and even bass does not need to go that low. Maybe in some other productions with natural instruments and Hi Fi you want more energy in the low end to hear all kinds of small nuances, but with dance music you really want the kick to operate with some bass lines down there.
If unsure, put in a high-pass filter on a track and wipe down and see if you hear anything down there. Even if it’s small rumble, all the rumble together makes the low end muddy. This is why I have a starting point template in Ableton Live where most audio tracks have the AU High Pass filter set to cut off at 100Hz.
For the high end, sometimes you also want to cut of the higher frequencies with a low-pass filter. There are some synths in some configurations where you could hear anti-aliasing, so you could chop that off using a low-pass filter.
Another trick I use to annotate the low-end is to have a multi-band compressor operate in the low end, below 120Hz or so, where my drum and bass is operating. This makes the low end pump, something that is very nice with dance music. One has to be careful with this, though. Too much could be too much.