Taylor's theorem roughly states that a real function that is sufficiently smooth can be locally well approximated by a polynomial: if f(x) is n times continuously differentiable then

f(x) = a0x + a1x + ... + an-1xn-1 + o(xn)

where the coefficients are ak = f(k)(0)/k! (for notation see little o notation and factorial; (k) denotes the kth derivative). Several formulations of this idea are given and proved below (unfortunately it is quite difficult to read when typeset in HTML).
The theorem is proved as a result in analysis, but its importance is mainly as a tool for calculations in applied mathematics. There the option of replacing an arbitrary function by some polynomial (adding some caveat about "for x sufficiently small") is often invaluable.
It is important to note that the theorem does not guarantee the existence of a power series expansion for an infinitely differentiable function. To deduce this we would need to know that for fixed x the error term tends to 0 as the number of terms in the polynomial n tends to infinity. Now the error term is proportional to xn for each n, and certainly xn → 0 as n → ∞ (for small x), but the problem is that the proportionality contant can increase as n does! An example of where this happens is the function f(x) = exp(-x -2) where all derivatives vanish at 0 (so that all the approximating polynomials are 0) but f(x) > 0 for all x > 0.
In contrast there is a version of Taylor's theorem for complex functions, which does guarantee the existence of a power series expansion for a complex differentiable function. While it looks similar to the real version its flavour is actually rather different. In particular it is genuinely useful for proving further results in analysis, rather than just in applications.

Taylor's theorem with Lagrange remainder:
Let f(x) be a real function n times continuously differentiable on [0, x] and n+1 times differentiable on (0, x). Then there is a t ∈ (0, x) such that (sum from k = 0 to n)

f(x) = Σ xkf(k)(0)/k! + xn+1f(n+1)(t)/(n+1)!

This version of Taylor's theorem is really a generalisation of the mean value theorem, and the proof boils down to finding an appropriate function to apply the mean value theorem to. Given x we therefore define

g(y) = Σ (x-y)kf(k)(y)/k!
z = (x-y)n+1/(n+1)!
h(z) = g(y(z))

Now by the chain rule

h'(z) = g'(y) * y'(z) = (x-y)n/n! * f(n+1)(y) * y'(z)= -z'(y) * f(n+1)(y) * y'(z) = -f(n+1)(y)

Applying the mean-value theorem to h gives that for some t ∈ (0, x)

f(x) - Σ xkf(k)(0)/k! = g(x) - g(0) = h(0) - h(xn+1/(n+1)!) = xn+1/(n+1)! * f(n+1)(t)

Taylor's theorem with integral remainder:
If f(x) is n times countinuously differentiable on [0, x] and n+1 times differentiable on (0, x) then (the sums are from k = 0 to n, the integrals form t = 0 to x)

f(x) = Σ xkf(k)(0)/k! + ∫(x-t)nf(n+1)(t)/n! dt

Use induction on n. The base n = 0 is the fundamental theorem of calculus. The induction step is given by the partial integration

∫(x-t)n-1f(n)(t)/(n-1)! dt = xnf(n)(0)/n! + ∫(x-t)nf(n+1)(t)/n! dt

Taylor's theorem in local form:
If f(x) is n times differentiable in a neighbourhood of 0 and f(n) is continuous at 0 then there is a function ε(x) such that ε(x) → 0 as x → 0 and

f(x) = Σ xkf(k)(0)/k! + ε(x)xn

The result follows from the Lagrange form of Taylor's theorem. Since f(x) is n-1 times differentiable in a neighbourhood we get

f(x) = Σ f(k)(0)xk/k! + xn(fn(t(x)) - f(n)(0))/n!

where t(x) is function such that 0 < t(x) < x for all x. Certainly t(x) → 0 as x → 0, so by continuity of f(n)

ε(x) = f(n)(t(x)) - f(n)(0))/n! → 0 as x → 0