Your question is way to broad to answer in a single post without being either too contrived or too generic without being useful. So I'll attempt to give a hopefully meaningful example of when interfaces are very useful.
Say you have a number of classes which represent various types of objects.. Maybe a dozen, or any sufficiently large number. And you have some function in another class which would like to be able to order arbitrary objects. For that it would need to be able to compare any two objects and determine if one is greater than, or less than another. Since each object could be of any one of your many types of classes this compare function would be pretty tedious to write since it would have to determine what type each object was and then do the comparison by invoking the appropriate logic for each class.
Enter interfaces. At this point, you could just have all your classes implement an interface such as Comparable which specifies that any class implementing it will implement a Compare method.
Now your function that orders object would become trivial to write since it can just rely on the fact that any class of object it needs to compare would have the same Comapre method.
This is just an example - and a rather common one at that.