EDITED. Note: This answer has been heavily edited since its last iteration based on Eliah Kagan's comments.
sudo -i runs a login shell with root privileges, simulating an initial login with root, acting similar to su -. The primary difference between sudo -i and su - is that sudo -i can be executed using a sudoer's password, while su - must be executed with the root account's password. Hence, if you are on a default *buntu install, where root login is disabled, sudo -i can be used while su and its variants cannot.
If you run the following commands:
$ sudo -i
[sudo] password for <username>: <enter user's password>
# cd ~
# pwd
you will get the output:
/root
Hence, you can see that sudo -i simulates an initial root login, including changing the home folder ($HOME) to root's, rather than your own. This also means sudo -i reads login files like .profile.
Meanwhile, sudo -s starts a new shell but without simulating initial login - login files are not read and $HOME is still set to your user's home folder.
If you run the following commands:
$ sudo -s
[sudo] password for <username>: <enter user's password>
# cd ~
# pwd
you will get the output:
/home/<username>
From this, you can see that sudo -s does not simulate an initial login, and does not change $HOME.