Choose typefaces with similar moods. For instance, Times New Roman and Arial are both relatively serious fonts used in books and documents. They mix poorly with playful fonts, especially fancy display types like Tombstone. Choose fonts that have similar moods to keep the document unified.
If you know the history of your fonts, you can pick typefaces from the same general group. For instance, sticking entirely to fonts with a 19th century background keeps a document crisp but ornate. Using only fonts designed with a mid-20th century modernist sensibility offers clean lines and no fuss. These grouped fonts use the same design sensibilities, and tend to go well together.
You can mix fairly disparate fonts if they maintain the same general letter and spacing proportions. The similar proportions give the different fonts something in common. Be sure to give each font its own role or job, such as titling, footnotes or sidebars. Their differences keep information visually separated, while the similar design features offer a unified feel.
Using a bold, heavy font with a delicate script provides good contrast, but may render the lighter font unreadable. Use fonts with similar weight, or change the size and spacing of text to bring the lighter font into view or suppress the weight of the heavier font.
While very different fonts sometimes argue visually, extremely similar fonts can be hard to distinguish from one another. Mixing two serif book faces in the same document can result in a confusing, cluttered look. Combine fonts that are at least a little different: a serif book face with a sans serif font of the same weight, for instance. Avoid fonts from closely related families.