I know some people have answered this but I thought I could add a little data.
For gas, full saturation is 3, however the third isn't worth as much as the first two. As a result its worth getting a second geyser before putting a third worker on the first.
This is also true for minerals as shown by this graph:
As you can see after your first 16 workers the gain per worker starts to decrease dramatically. As a result when you start an expansion you should shift any excess workers (over 16) to the new expansion.
The original research can be found in this paper: Worker Income Efficiency in Starcraft II By Chet 'Cheticus' V. The paper reports original data collection and methods, as well as the formula's uses for the 'least squares regression.'