There are two steps here. First, getting the data out of the first install. And second, getting it back into the new one.
For exporting, there's a number of routes you can take. Since you're relying on some fieldtypes that use their own tables, the easiest route might be to create an XML template for each channel. That will allow you the flexibility to use the template parser to output those fields. A pretty simple {exp:channel:entries}
tag pair will output all of the entries as XML nodes. (You could use JSON instead, but I've found that it's easier to output XML from a template.) I've also written custom scripts that run against the EE database to create the XML files. Obviously, that requires a bit more work to prepare the queries joining all the necessary tables and parsing the output.
For importing, I highly recommend Datagrab. It's very flexible with importing and works with a number of fieldtypes.
There is also Solspace Importer, but I don't have any experience with that tool.
One last tip: Make sure you create a field in each channel of the new site to hold the old entry ID. This will allow you to easily update all the entries you just imported if some of the data doesn't come through right. You can just configure Datagrab to match based off of the old ID, and it will know to update the entry instead of create a new on.