  We give new arguments that improve the known upper bounds on the maximal
number N_q(g) of rational points of a curve of genus g over a finite field F_q
for a number of pairs (q,g). Given a pair (q,g) and an integer N, we determine
the possible zeta functions of genus-g curves over F_q with N points, and then
deduce properties of the curves from their zeta functions. In many cases we can
show that a genus-g curve over F_q with N points must have a low-degree map to
another curve over F_q, and often this is enough to give us a contradiction. In
particular, we able to provide eight previously unknown values of N_q(g),
namely: N_4(5) = 17, N_4(10) = 27, N_8(9) = 45, N_{16}(4) = 45, N_{128}(4) =
215, N_3(6) = 14, N_9(10) = 54, and N_{27}(4) = 64. Our arguments also allow us
to give a non-computer-intensive proof of the recent result of Savitt that
there are no genus-4 curves over F_8 having exactly 27 rational points.
Furthermore, we show that there is an infinite sequence of q's such that for
every g with 0 < g < log_2 q, the difference between the Weil-Serre bound on
N_q(g) and the actual value of N_q(g) is at least g/2.
