Welcome to Dreamhost! You have mixed a lot of different subjects into this post, and it is generally easier for others to search for, and benefit from, the answers if you make separate posts.
That said:
In reply to:
1. Do I create separate databases for each Joomla installation or do I separate them by unique table-prefixes?
That is entirely up to you, and you should do it whichever way you will find easier to manage.
Some of the things you might consider include how any existing databases are set-up on another host (do prefixes separate multiple instances of Joomla! there, and if not, will you have to diddle with the existing table names to sort all that?), will you want to keep the databases separate for different users?, etc.
In reply to:
2. What exactly is a mysql hostname? I presume I should have a dedicated one for each domain?
It is the "name" (url) used to "host" the database and, again, whether you created a hostname for each domain, or subdomain, or even each instance of Joomla! is up to you - they are all simply an alias for the same host in the DH setup anyway, but if you are segregating users/data, etc,, you might want to create a new hostname (alias) for each instance, as these values *will* show n the DH Admin panel, and you probably don't want to confuse the issue. Ether way, however, will work.
In reply to:
3. What is "first_user". Should I have one generic "first_user" that covers all my sites?
That is the "db user" ("first" meaning "first one created") for the database being created, and once again, how you decide to manage DB users is entirely up to you. Many feel that having multiple users provides greater security should a site "break" and somehow expose the db user; YMMV and you should set it up in whatever way is convenient for you. It is also related to how you decide to implement your Question#1 above - if you use the same user for all, that user will be able to see all the databases on the host - and this may, or may not be, what you desire.
In reply to:
4. With email what is a mailbox login? Is this the username that I use?
Yes. On Dreamhost, the email address *also* works for logging in to mail.
In reply to:
5. What is a mailbox "name"? Is that purely for reference?
Yes.
In reply to:
6. Final question - what is the official easiest way to convert an existing joomla site from cpanel/other host to dreamhost? Is it a case of ftp down then up all files. Creating backup of mysql db and recreating on dh?
That depends on several things, not the least of which is your expertise!
Another is what versions of PHP, MySQL, and Joomla! itself are in use at the other host. Sometimes it is easier to just create a new "one-click" installation of Joomla! on DH, install your templates and components, and load it with the *data* dumped from the other site. Other times it might make more sense to do it as you described (particularly if the other host sites are "older" Joomla! versions. You may not have any choice in the matter if the MySQL versions/data are different, and may have to do it all manually. The particulars are important here!
Hopefully, some of that is helpful. If you have additional questions, or want further discussion on any of this *please* create a new thread, in the appropriate forum (programming? Third Party Applications? etc.) to continue the discussion so it doesn't all end up "lost" to others in this "everything at once thread" (at least maybe separating the Joomla/DB related stuff into their own threads).
--rlparker