We have the following (for one site application):
A play pen where we can try out crazy ideas.
For current business-as-usual or project developments
System testers do thier testing here
Used for content publishing practice (by the client) - it can then be deployed to PP and Prod from here.
Mirror of prod (in hardware terms too), used for testing architectural issues and also acts as a backup should a part of Prod fail.
Obviously our production site for the public
In addition to these it is a little more complicated since sometimes we might introduce more machines in say Development if we have more than 1 stream of work on at once. Also, sandpit and dev share the same CMS database. Likewise with databases, some environments may have dedicated database servers or some might share one. the other variant is we have 1 physical server with many instances of a database on it.