The GeoIP database and API from MaxMind provide an easy way to determine country and region from an IP address. This can be used on a website to determine which country a site visitor is from, to provide them with a tailored experience, or to direct them to an alternative website.
Combined with Magento's multi-store capabilities, this can be used to provide the most suitable currency, language and product selection automatically.
One thing I wanted to be careful with, was to make sure that my implementation didn't have a negative effect on SEO. For example: redirecting to a country specific domain based on IP address might stop some domains from being indexed by search engines (Googlebot IP addresses are nearly always US based). Also, having the same domain to serve different countries might mean lower (or no) search ranking for country specific searches.
There are lots of different scenarios that are possible, and I can't cover them all, but hopefully you'll find something useful below. Let's get started...