Another possibility for those who use a building framework like ant or phing is to define a target in your build.xml file with all the task that you need to perform to set up your perfect dev environment. Another target can be defined to undo the first. That way you can toggle between the two modes at will.
A brief example of such targets are below
<target name="en-dev">
<exec command="drush --yes en devel devel_themer coder" />
<exec command="drush --yes perm-grant 'Authenticated User' 'access devel'" />
<exec command="drush --yes perm-grant 'Annonymous User' 'access devel'" />
</target>
<target name="dis-dev">
<exec command="drush --yes dis devel devel_themer coder" />
<exec command="drush --yes perm-revoke 'Authenticated User' 'access devel'" />
<exec command="drush --yes perm-revoke 'Annonymous User' 'access devel'" />
</target>
In this case I could run phing en-dev
to set up my dev environment.
For the opposite function I just run phing dis-dev