1) Meticulously protect the surfaces prior to wear with high quality products (I recommend high quality Scotch-gard like sprays which won't inhibit the breathe-ability of the leather) and then catch every small scuff and stain after each wear, cleaning gently as you go, depending on what surface needs it. Magic eraser for the sole, toothbrush with gentle laundry soap for the canvas, leather cleaner for the non canvas parts of the upper, etc. Reapply surface protectants every two to three months as they rub off over time.
2) Pre-protect your shoes, try not to over abuse them, and have them professionally cleaned at a shoe repair shop once or twice a year, depending on wear.
3) Pre-protect your shoes and when they need cleaning, throw them in the washing machine (allowing them to air dry afterwards) and take your chances.
Which option you you choose will depend on your temperament and budget, as well as on how risk adverse you are. I've used all three methods, depending on how much I cared and how much of my time I was willing to spend on certain pairs of footwear.