For best results you need to be tiling on a sound even surface.
If you try to tile on an uneven surface you will quickly find that the tiles don't line up properly with each other and the end result will look "lumpy" and quite amateurish. I have tiled on uneven surfaces in the past but find I had to end up putting extra adhesive in certain places to level up each tile up as I went along removing tiles that looked bad and generally spending far far longer on the job than otherwise.
Tiling on walls
So if your walls are bad you may need to consider having them re-skimmed(with plaster) or re- rendered(with cement) by a plasterer.
Alternatively put up new plasterboard.
If your tiling in a bathroom there is a great product which is now available to DIYers. Tile backer board is a tough water proof board. It' a bit like hard plaster board, but made from a rubberised compound. It's lightweight and tough but also water proof. It specifically designed to be used in wet areas like bathrooms. Its made by WEDI . Checkout their web site. They've got a very useful how to guide and a list of national stockists. Check it out at http://www.wedi.co.uk/flash.htm