Start by treating your suede or nubuck shoes with a protective spray or finish. This treatment helps to repel water and prevent stains. This is your best defense as you can't "polish" suede and nubuck the same way as smooth leather. The nap of suede and similar leathers is more absorbent, you will have to pull any stains out rather than polishing them away.
If that ship has already sailed, at least you'll know for future reference to protect suede and nubuck leather goods before wearing.
If you have let your suede or nubuck shoes go, here are some cleaning tips for suede shoes and boots after stains have already set.
Before you get started, first test any treatment or product on a small inconspicuous area before tackling a large stain. Remember to only use products designed specifically for the material of your footwear (suede, nubuck, smooth leather, etc.).
For heavy stains on suede footwear, use a suede cleaning block (also called a suede eraser). These products will crumble as you rub them across the surface of the footwear, and are great for removing even deeply embedded dirt. The idea is that the eraser absorbs or pulls stains out of the leather while softening the nap of the suede.
After cleaning, the nap of your suede can be restored by using a suede brush. The bristles of suede brushes are usually made from brass, and often you can find both the cleaning block and the brush in one kit.
After you finish cleaning, you want to treat your suede and nubuck with protective sprays that will keep water, other liquids and dirt from causing more stains on your shoes.