If you can get the desired result through a static method, you have to use a delegate, because you cannot use interfaces with static methods. Delegate is represented only by a single method signature, and it doesn't care if that method is static or instance (a nice thing is also passing anonymous delegates, or Lambda expressions in C# 3.0).
On the other hand, interfaces allow you to pass an object with some encapsulated state information, which you cannot do with static methods (ok, I guess you can have static properties also, but you get the point). Interfaces also contain multiple method and property signatures, when compared to a single delegate.