There are rare, but very good, reasons to use method hiding. Eric Lippert posted a great example on his blog:
interface IEnumerable<T> : IEnumerable {
new IEnumerator<T> GetEnumerator();
}
However, I think hiding should be the exception, and only used sparingly.