Merging two or more WordPress blogs is a fairly straightforward task. The exporting and importing steps, which actually copy all of your blog posts from your source blog(s) and move them into your target blog, are handled with just a few clicks of the mouse button. The planning beforehand and the cleanup afterward take a little more effort, but the whole process is still a lot easier than you probably expect.
Before The Merge
1. Choose your permalink structure. You want to set your permalink structure before you import the posts from your source blog, because as the posts are imported they'll each be assigned a URL based on the permalink structure you set up in your target blog. I like the /%postname%/ permalink structure (which I discuss in this post), but you may prefer a different one.
2. Choose your categories. If you haven't already, now's a good time to plan and choose the categories you'll be using on your target blog. This post by Ali Hale has some good suggestions.
3. Export your blog. This step is as simple as logging in to your WordPress admin, going to the Tools->Export section, and clicking the "Download Export File" button. (I'm assuming you want to download posts by "All Authors" but if for some reason you're only exporting posts by one author, choose that author from the dropdown menu before downloading the export file.) WordPress will download a .xml file to your computer.
4. Import your blog. Now go to the Tools->Import section, select "Wordpress" (assuming you're importing a WordPress blog), browse to that file, then click the "Upload file and import" button. The next screen gives you some options for "Assigning Authors," and here's a neat tip from Mark Jaquith: create a new "temporary" user for all of your imported posts. This will simplify the Cleanup part of the merge process (see below), by allowing you to more easily selected your recently imported posts for bulk editing. Also, be sure to check the "Download and import file attachments" checkbox; this will insure that any images you included with your posts will get imported as well.
After The Merge
5. Start the cleanup process. This will likely include heavy use of the WordPress "Edit Posts" screen, particularly the Quick Edit and Bulk Edit features. If you're not familiar with these features, take a look at this excellent one-and-a-half minute video from wordpress.tv.
When updating the categories of your newly added posts in your target blog, the Bulk Edit feature is handy, but it's not perfect. In particular, as noted here, "Categories and Tags can be ADDED in bulk to a set of Posts, but it is not possible to CHANGE, or DELETE, a Category, or Tag, for those Posts." This is related to another annoying quirk: When you choose several previously Uncategorized posts in order to Bulk Edit them so they all are in the same category, WordPress also leaves them in the Uncategorized category. Since you can't do a bulk edit to delete the Uncategorized category from these posts, you'll have to edit them one-by-one using Quick Edit.
This last step will likely be the longest and most tedious of the whole process, especially if you need to change the (categories or tags) for a lot of posts. But take heart; after it's over, your new blog will likely be much better organized than the old one(s) ever were.
Once you're satisfied that your blog merge was successful, you'll probably want to forward the domain of your old blog so that it points to your new blog, and also completely delete all of the WordPress files (and the old WordPress database) from your old site. That way you won't have duplicate copies of your posts at the old site.