How about something like this:
(add-hook 'markdown-mode-hook (lambda () (variable-pitch-mode t))
You can then customize the variable-pitch face, and the other faces in the buffer will inherit from this instead of the default face.
Read the docs for buffer-face-mode for more customization details. (BufFace is also used for text-scale-increase and text-scale-decrease… very useful.)