In storing passwords in a database should I use a per-application salt in addition to a per-secret salt? Assuming that the salts are sufficiently long (16 random chars) is there any advantage in using a per-application salt in addition to a per-secret salt when storing hashed passwords in a database?

The per-application salt would held in the code.  The per-secret salt would be held in plain text on the same database entry as the hashed password.
There is an advantage.

Cracking a password from its hash without knowing the salt is extremely difficult, as you're essentially increasing the password length by the length of the salt.

If you're storing the hash in such a way that it isn't obvious that it's been salted by the application, the attacker likely won't go looking for it. If the application itself isn't plain text (ie; compiled in some way), even if they do go searching for it, it is non-trivial to find.