I've got a few development sites running on my laptop, and I generally want them to be at the document root to mimic the live site as much as possible (ie, at http://localhost/ instead of http://localhost/Clients/ClientA/). Until today, I've been switching the Document Root in MAMP every time I switch projects, which is fine when you only switch projects once in a while. I just made some config changes to make this easier and a little more sensical, and I thought I'd write about it here in case anyone else is looking for ideas on the Googles.
First, open /private/etc/hosts and add hosts for each client you want to host, so your machine knows to look for the domain on your own computer. I use local.clientname.com because it's unlikely that most sites have a local subdomain, but you can use something different. My host file has these two lines at the bottom:
127.0.0.1 local.clienta.com
127.0.0.1 local.buffalostuff.net
Then run this in Terminal to flush your DNS cache:
dscacheutil -flushcache
Now, you can navigate to those URLs (http://local.clienta.com and http://local.buffalostuff.net in my case) and MAMP will serve up whatever it has.
That's half the job. Now, you need to configure Virtual Hosts for the domains. In the MAMP Preferences, on the Apache tab, make sure the Document Root is set to your Sites directory (in my case, /Users/bboland/Sites/). Then, open /Applications/MAMP/conf/apache/httpd.conf, and add a virtual host at the bottom of the file for each domain:
NameVirtualHost *
<VirtualHost *>
ServerName local.clienta.com
DocumentRoot /Users/bboland/Sites/ClientA
</VirtualHost>
<VirtualHost *>
ServerName local.buffalostuff.net
DocumentRoot /Users/bboland/Sites/BuffaloStuff
</VirtualHost>
Stop and re-start the servers in MAMP. Now you can navigate to those two sites and actually get the right content.
The biggest problem I see with this is maintenance: any time you take on a new project, you need to make sure you update the hosts file and Apache config. But, since you only need to do it once, it's not that bad.

Comments
Have you checked out:
Have you checked out: http://httpd.apache.org/docs/2.0/vhosts/mass.html#simple
We use that at work for a similar situation. At least it takes the configuring Apache out of it.
As for the DNS thing. Maybe you could do something like clienta.com.localhost, and then have the vhosts only look at everything up to localhost. You are using relative URLs aren't you? ;)
It looks like you could
It looks like you could create a simple script that does all of the steps required for adding a new client.
run newClient.vbs myNewClient
it appends a line to the hosts file with 127.0.0.1 local.myNewClient.com
it flushes the cache
it appends the virtual host block for myNewClient
it stops and starts the necessary services
Doh! Lost the formatting of
Doh! Lost the formatting of my pseudo code. Just insert a carriage return before each "it" in the 2nd paragraph.
[...] and managed to make a
[...] and managed to make a fair amount of progress pretty quickly. Thanks to a suggestion from my buddy Brock, I got a test instance of the site up & running PDQ using [...]