The prime number theorem clearly implies that you can use x/(log x - a) (with any constant a) to approximate pi(x).  The prime number theorem was stated with a=0, but it has been shown that a=1 is the best choice:

There are longer tables below and (of pi(x) only) above.

Example: Someone recently e-mailed me and asked for a list of all the primes with at most 300 digits.  Since the prime number theorem implies this list would have about 1.4*10297 entries we know that there can be no such list!
Note that Pierre Dusart showed that if x>598 then
(x/log x)(1 + 0.992/log x) < pi(x) <(x/log x)(1 + 1.2762/log x)
(The upper bound holds for all x > 1.)  This gives a tight bound for larger x. Note x/log x< pi(x) for x > 10.