For example, on the user registration page, is it safe to tell people "Your password will be stored as a one-way hash using the (whatever) algorithm."
If it is not safe, then your hash function is pure junk, and you should not use it.
In any decent security analysis, it is assumed that the attacker already knows all the software that you are using, because:
On the other hand, making the used hash function explicit may give you a reputation of "competent site owner" which would bring confidence to technically-inclined customers.
In a purely technical sense, yes, it is safe to tell your users which algorithm you use – as long as the algorithm is any good. This is no secret information, and trying to hide it would be rather silly.
However, if you make a big announcement that you use, say, bcrypt, this may backfire. Your users might be tempted to choose even weaker passwords, assuming that your magical hash algorithm keeps them secure either way. In fact, there have been several questions on this site where people actually believed that using bcrypt makes password strength completely irrelevant. This is of course not the case. So you have to be very careful not to give your users a false sense of security.
Long story short: It's fine to tell anybody who's interested and (hopefully) understands that they still need a good password. But I wouldn't put a big message in the registration form. People may draw the wrong conclusions from it.
I'd say that it is safe as long as the hashing algorithm you use is secure. Otherwise, it may give an incentive to go after your database.
As a user, I have to admit that I wouldn't mind more transparency from the sites on which I register, regarding how the credentials are stored. But less technical-oriented users may be taken aback and/or miss your point, so make sure that your target audience cares about this information.
In any case, the strength of your password scheme doesn't rely at all on it being secret: it relies on cryptography being peer-reviewed. Therefore, disclosing what algorithm you use shouldn't matter.
It is safe if your hash / key stretching algorithm(s) are safe, but it is not necessary and probably not a good idea. I would suggest telling users vaguely how your passwords are stored (e.g. "key stretching, which includes several iterations of a one-way function"), but not make mention of the exact algorithm.
Keeping the method of hashing (or even the entire method of authentication) secret is an instance of security through obscurity, which is usually frowned upon. However, most of the time, that frown comes from a misunderstanding, much like people often misinterprete Hoare's quote on premature optimization as "don't optimize".
A cryptographic algorithm must work reliably even if the attacker knows all the details of the algorithm, and it is assumed that he does. For that reason, cryptographic algorithms are usually fully disclosed and nobody will trust a "secret" cryptographic algorithm.
Your security strategy must likewise assume complete disclosure as the worst case scenario, and your system must still work reliably in that case.
Telling your users vaguely, on a high level, what your password storage strategy is may give a good impression to the user but does not nail you down to something in particular (including possible liability issues as pointed out by schroeder in a comment above). Obscurity may be both a way of deterring and delaying an attacker.
A bit of obscurity on the exact algorithm is both akin to putting a big, prominent door bolt on your front door with a hidden, protected lock slit, and to putting your money into the safe before leaving your hotel room.
It is much the same with an online attacker. While it is unlikely that you will discover the intrusion as it's happening, the intruder nevertheless has less time available before you do, since he not only needs to download the password database, but also needs to figure out the "secret" hashing algorithm and salts. It may not be a lot of time, but it's something that doesn't cost you anything. Why give it away?
If you tell an attacker that you use MD5 to hash your passwords, then he will immediately know that he can crack your entire user database in under 2 seconds, and you most likely aren't very up-to-date with security alltogether, which means you are a very attractive target. If you tell an attacker that you use a "key stretching system with many iterations", he can figure that it's probably a considerable amount of work to crack even a single password. Plus, it's extra work to figure out what algorithm exactly you use.
If the hash is safe and, more importantly, how it's used in the site/application is safe, then you should be able to open source the entire code running the site/app and you should be no less secure.
So, yes, IF the implementation is safe, disclosure is safe. That's a big IF.