Although I\'m guilty of this crime, it seems to me there can\'t be any good reason for a table to not have an identity field primary key.
Pros: - whether you want to o
One reason not to have primary key defined as identity is having primary key defined as GUIDs or populated with externally generated values.
In general, every table that is semantically meaningful by itself should have primary key and such key should have no semantic meaning. A join table that realizes many-to-many relationship is not meaningful by itself and so it doesn't need such primary key (it already has one via its values).