Node listing as the homepage
When creating a multilingual Drupal site, if your site front page is a node listing (which is the default in Drupal), you can enable the Multilingual select module, included in the contributed Internationalization (i18n) package of modules, and the content for each language will be selected depending on your settings for 'Language selection' (Administration > Configuration > Regional and language > Multilingual settings > Selection ) so you won't need to do anything else in this case.
Different node or path per language as the homepage
When using a single node as the front page, or when using a different path per language for the front page, the page won't switch automatically depending on the language detection. You need to use the Variable translation module (part of the Internationalization package) to specify a default front page path per language.
- In Configuration > Regional and languages: Multilingual settings > Variables, enable 'Default front page' as a multilingual variable.
- Go to Configuration > System > Site information > Front page.
- Change the language via the section "Select language" at the top of the page to select the language for which you're setting the front page option.
- Set the 'Default front page' option for the current language.
- Repeat as necessary for each available language.
If using language prefixes, do not include the language prefix in your path.
Note that, so far, the "Front page" contributed module (version 7.x-2.0-rc1) doesn't support internationalization.
Due to an error in Drupal core, using a different home page per language may lead to problems for anonymous users, see #339958: Cached pages returned in wrong language when browser language used for the details. To alleviate problems like this, a small (sandbox) module was written to execute a real redirect from the home page to the page that is defined as serving the front page: Front page redirect.