Of course this depends on how you wanna mix. There are lots of possibilities, pure software, software with midi controller, hybrid systems like traktror scratch or scratch live, pure hardware mixing (CDJs or 1210) with a mixer.
At the moment I do my mixes with Ableton Live and a BCR 2000 midi controller.
What I like about software mixing is that it offers a lot more flexibility than pure hardware mixing, doing live mashups and stuff like that and you can concentrate on the more creative parts of Djing instead of constantly beatmatching which I find quite boring.
You can check out
http://www.abletonlivedj.com if you wanna know about DJing with Ableton.