Solo tenemos que crear el campo que queramos que se autoincremente como Serial.
Ejemplo:
CREATE TABLE foo (
id serial,
name character varying(8) NOT NULL
);
Si insertamos 3 tuplas:
postgres=# insert into foo(name) values ('a');
INSERT 21591 1
postgres=# insert into foo(name) values ('b');
INSERT 21592 1
postgres=# insert into foo(name) values ('c');
INSERT 21593 1
postgres=# select * from foo;
id | name
----+------
1 | a
2 | b
3 | c
Comprobamos que se autoincrementa sola!.
Si consultamos la tabla foo, vemos que postgreSql genera el código interno para que se autoincremente.
postgres-# \d foo
Tabla "public.foo"
Columna | Tipo | Modificadores
---------+-------------------+-----------------------------------------------------
id | integer | not null default nextval('public.foo_id_seq'::text)
name | character varying |
Comprobado sobre postgreSQL 7.4