The Muskat, or Muskat-Leibenzon, problem describes the evolution of the interface between two immiscible fluids in a porous medium or Hele-Shaw cell under applied pressure gradients or fluid injection/extraction. In contrast to the Hele-Shaw problem (the one-phase version of the Muskat problem), there are few nontrivial exact solutions or analytic results for the Muskat problem. For the stable, forward Muskat problem, in which the higher-viscosity fluid expands into the lower-viscosity fluid, we show global-in-time existence for initial data that is a small perturbation of a flat interface. The initial data in this result may contain weak (e.g., curvature) singularities. For the unstable, backward problem, in which the higher-viscosity fluid contracts, we construct singular solutions that start off with smooth initial data but develop a point of infinite curvature at finite time.