There are many types of numbers, though the natural numbers, the integers, the rational, the decimal, the real, and the complex form a nice self-complete expository whole. Hopefully, the following block(s) of text aren't too poorly formatted.
1) The set of natural numbers consists of numbers with which we count {0,1,2,3,...}. As noted in some of the other answers, some people think that 0 is not a natural number (see one of my desktop backgrounds). Whether or not it is, it's a matter of taste.
What is not a matter of taste are the defining properties of the natural numbers. In particular, there is a (binary) operation called +, which takes two numbers a and b and spits out a third number a+b, which is the sum of a and b. It satisfies the usual properties that you would expect from counting: it is commutative (the order of the summands doesn't matter, i.e. a+b=b+a) and associative (the order in which you add summands to each other doesn't matter, i.e. (a+b)+c=a+(b+c), so you can always write a+b+c for a specific number).
There is also an order relation < such that for any two different numbers a and b either a
The order plays nice with addition in that a < b implies a+c < b+c. We also have a cancellation property that if a < c, then there exists a number b such that a+b=c.
The order also satisfies one unobvious property called the well-ordering principle and states that if you take any collection of natural numbers, there is a smallest one, i.e. a number that is smaller than all the other numbers in the collection.
The well-ordering principle, together with cancellation, implies that there is a smallest number, and that any two consecutive numbers differ by the same number. From this it follows that either the smallest number is 0 (in the sense that 0 is the number such that 0+a=a+0=a) or that it is 1, where 1 is the common difference between any two consecutive numbers.
Choosing one or the other of the two possibilities defines the natural numbers uniquely as either {0,1,2,...} or {1,2,...}.
It is a fun exercise to show that the above axioms are equivalent to the axioms of Peano (note that the axioms of Peano state nothing about addition, so in fact BOTH {0,1,2,...} and {1,2,...} satisfy the axioms; how we define addition with respect to the smallest element is what specifies one of the two sets)
2) The set of integers, also known as whole numbers, is {..., -3, -2, -1, 0, 1, 2, 3, ...}.
It arises as we try to "complete" the arithmetic of the integers in the following sense.
For any two numbers a < b we have a number b-a such that (b-a)+a=b, thus we have subtraction of a smaller number from a bigger number. We do not have such numbers b-a if a>b (i.e. there is no natural number which when you add a to you get b if a>b), but from experience we see that numbers such as ... -3, -2, -1
seem to be sensical to add and subtract as we try to solve equations and whatnot.
But while numbers such as b-a when a < b are defined, the same number could be represented in different ways. For example, 2 is both 5-3 and 8-6. So we need to answer the question of when b-a=d-c for a < b, c < d, and by algebra the answer is that they're equal whenever b+c=d+a. Hence, we can define all the integers, positive and negative, by taking them to be pairs of natural numbers (a,b) with the caveat that (a,b)=(c,d) whenever a+c=b+c.
For example, the integer -2 consists of (among others) the pairs (5,3), (6,8), (0,2). This is all seems like much formal ado about intuitive nothings, but that is only because we can represent any integer as either the pair (a,0), which we write simply as a, which we write as -a, and think of as (a,0) is the integer which when you add a to you get 0, or as (0,a), which we think of as the integer to which which you add 0 you get the natural number a. Hence what we actually do arithmetic with are the pairs {... (3,0), (2,0), (1,0), (0,0), (0,1), (0,2), (0,3),...}, but the fact that we only need to throw in a negative sign to make the arithmetic meaningful is precisely because there exists these special representative pairs.
Exercise: define the addition and order on the pairs of natural numbers for the above to work (we lose of course the property that any set of integers has a smallest integers [e.g. the set of negative integers], but the principle still holds for sets of positive integers).
3) The rational numbers (or fractions) are obtained by the exact same process of completion as above, except with respect to multiplication. the fraction a/b, where a and b are integers corresponds to the number which when multiplied by b gives you a. Note that a/b=c/d if and only if ad=bc, which mirrors the fact that a-b=c-d if and only if a+b=b+c.
4) The real numbers are best understood as coming from decimals (or decimal expansions), so what are decimals and where do they come from?
Rational numbers as fractions are hard to compare to one another. Is 7/5 bigger or smaller than 4/3? The answer is yes, becayse 7*3>3*5. In general if you have a/b and c/d, we have a/b < c/d, a/b=c=d or a/b>c/d if correspondingly adbc. But that's a tedious process, is there some way of writing them down so that it is clearer who's bigger than who? Better, can the process of writing them down be easier than the process of checking who's bigger than who by cross-multiplication?
The answer is yes, and we only need consider the usual way in which we write natural numbers. We can express the number 1729 compactly based on the distributive properties of addition and exponentiation: 1729=1000+700+20+9=10^3+7*10^2+2*10+9, where the digits 1,2,3,4,5,6,7,8,9,10 are the first ten successors of zero, and zero is denoted by 0.
So we can write rational numbers with denominator 10^n as a.b=a+b/10^n with a and b are natural numbers and b is smaller than 10^n. For example, 1729/100 can be written as 17.29 where 17 and 29 are natural numbers with 29<100.
Now, for any rational number c/d there exists a rational number with denominator closest 10^n that's closest to and smaller than c/d (this is intuitively obvious and not that hard to formalize). Then we can say that c/d ~ a.b where a+b/10^n is that rational number.
For example, the closest number with denominator 10 to 1/3 is 3/10=.3, with denominator 100 is 33/100=.33, and so on. Then that the infinite string 0.3333... equals 1/3 means that the closest rational number less than or equal to 1/3 with denominator 10^n is 333...3/10^n where you have n 3's.
From this, one can prove that rational numbers correspond have periodic expansions, i.e. that the string a.b has a repeating sequence of digits from some point onward.
(even better, we can compute decimal expansions by the usual process of long division by just adding a decimal point, and we can efficiently compare numbers by looking at the expansion until the first point of difference).
5) Real numbers come from taking arbitrary infinite sequences of digits as decimals.
From above, we know that decimals actually encode sequences of rational numbers with denominators 1,10, 10^2, 10^3, ...
When should two such sequences be equivalent? Consider the standard question of whether .999...=1.
The decimal expansion of 1 is just 1.000... because the sequence of rational numbers with denominators 10, 10^2, 10^3, ... has to be a sequence of rational numbers less than or equal to 1.
If we drop the requirement that the numbers be less than or equal to 1, keep the requirement that the sequence of rational numbers (approximations really) is non-decreasing, and say allow the rational number to be either the closest number less than 1 or 1 itself, then we obtain the other expansion 1=.999...
If you had a measuring instrument that was accurate to n decimal places, then upon measuring .999... and 1.000... you would always get .999...9 with n-2 9s.
So it turns out that with finite precision measuring, you can't tell the difference between certain decimal expansions, so we might as way say those two decimal expansions are equal. This is the process of completion by Cauchy sequences put into words.
And those expansions then are the real numbers, and they have addition, multiplication, subtraction and division and ordering just like the rational numbers, except that they're complete in that every sequence of real numbers converges.
6) Complex numbers
It turns out that every polynomial with real coefficients of degree >2 has a square root. -1 does not have a a real square root, so we wish to throw a root of -1 in to algebraically complete the real numbers, and thus get the complex numbers. The algebraic construction is best done by explaining concepts such as rings and ideals and quotients and homomorphisms, which is too much machinery.
Instead, consider Euclidean geometry. It is a(n advanced) fact that you can coordinize it with real numbers, i.e. you can represent points by pairs of real numbers (a,b), lines by the solutions of the two variable equation ax+by=c, lengths given by square root of ((a-c)^2+(b-d)^2), etc.
Adding pairs (a,b) and (c,d) gives you (a,b)+(c,d) so addition of pairs corresponds to translations. Another way of interpreting a pair of (a,b) is by interpreting it in polar form (r, theta) where r is the distance of (a,b) form the origin and theta is the angle from the x-axis to (a,b). Then we can think of (a,b)~(r,theta) as a dilation and rotation with center (0,0) and sending (1,0) to (a,b), i.e. a dilation by a factor of r and a rotation by an angle of theta. But this then defines a multiplication of vectors, which turns out to distribute over addition. Clearly we have inverse rotations/dilations and inverse translations, giving us subtraction and division. Finally, we can identify the real numbers with pairs (r,0) which are only a dilation without any rotation.
These pairs are then our complex numbers and you can deduce all their properties from the above description. Note that the vector (0,1) multiplied by (0,1) gives (-1,0) since it corresponds to a rotation of 90 followed by a rotation of 90, which is a rotation of 180 of (1,0) which equals (-1,0). See Qiaouchu's answer for more details.