The pros of an artificial key are (1) they can be populated automatically, (2) you don't have to worry about non-unique values (provided you're populating via a sequence, (3) you don't have to worry about NULL values, and (4) foreign keys only have to reference one column instead of multiple columns.
The cons are (1) they impose additional storage requirements.
My personal take - if you have one or more columns that will work as a PK, use them.