There are some great answers already, but none of them address a complete list of what the __future__ statement currently supports.
Put simply, the __future__ statement forces Python interpreters to use newer features of the language. 
The features that it currently supports are the following:
nested_scopes
Prior to Python 2.1, the following code would raise a NameError:
def f():
    ...
    def g(value):
        ...
        return g(value-1) + 1
    ...
The from __future__ import nested_scopes directive will allow for this feature to be enabled.
generators
Introduced generator functions such as the one below to save state between successive function calls:
def fib():
    a, b = 0, 1
    while 1:
       yield b
       a, b = b, a+b
division
Classic division is used in Python 2.x versions. Meaning that some division statements return a reasonable approximation of division ("true division") and others return the floor ("floor division"). Starting in Python 3.0, true division is specified by x/y, whereas floor division is specified by x//y. 
The from __future__ import division directive forces the use of Python 3.0 style division.
absolute_import
Allows for parenthesis to enclose multiple import statements. For example:
from Tkinter import (Tk, Frame, Button, Entry, Canvas, Text,
    LEFT, DISABLED, NORMAL, RIDGE, END)
Instead of:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, \
    LEFT, DISABLED, NORMAL, RIDGE, END
Or:
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text
from Tkinter import LEFT, DISABLED, NORMAL, RIDGE, END
with_statement
Adds the statement with as a keyword in Python to eliminate the need for try/finally statements. Common uses of this are when doing file I/O such as:
with open('workfile', 'r') as f:
     read_data = f.read()
print_function:
Forces the use of Python 3 parenthesis-style print() function call instead of the print MESSAGE style statement.
unicode_literals
Introduces the literal syntax for the bytes object. Meaning that statements such as bytes('Hello world', 'ascii') can be simply expressed as b'Hello world'.
generator_stop
Replaces the use of the StopIteration exception used inside generator functions with the RuntimeError exception.
One other use not mentioned above is that the __future__ statement also requires the use of Python 2.1+ interpreters since using an older version will throw a runtime exception.
References