We explore the inter-relationships between mass, star-formation rate and environment in the SDSS, zCOSMOS and other surveys. The differential effects of mass and environment are completely separable to z ~ 1, indicating that two distinct processes are operating, mass-quenching and environment-quenching. Environment-quenching, at fixed over-density, evidently does not change with epoch to z ~ 1, suggesting that it occurs as large-scale structure develops in the Universe. The observed constancy of the mass-function shape for star-forming galaxies, demands that the mass-quenching of galaxies around and above M*, must be proportional to their star-formation rates at all z < 2. We postulate that this simple mass-quenching law also holds over a much broader range of stellar mass and epoch. These two simple quenching processes, plus some additional quenching due to merging, then naturally produce (a) a quasi-static Schechter mass function for star-forming galaxies with a value of M* that is set by the proportionality between the star-formation and mass-quenching rates, (b) a double Schechter function for passive galaxies with two components: the dominant one is produced by mass-quenching and has exactly the same M* as the star-forming galaxies but an alpha shallower by +1, while the other is produced by environment effects and has the same M* and alpha as the star-forming galaxies, and is larger in high density environments. Subsequent merging of quenched galaxies modifies these predictions somewhat in the denser environments, slightly increasing M* and making alpha more negative. All of these detailed quantitative relationships between the Schechter parameters are indeed seen in the SDSS, lending strong support to our simple empirically-based model. The model naturally produces for passive galaxies the anti-hierarchical run of mean ages and alpha-element abundances with mass.