Usar variables de interfaz

Todavía estoy tratando de obtener una mejor comprensión de las interfaces. Sé lo que son y cómo implementarlos en las clases.

Lo que no entiendo es cuando creas una variable que es de uno de tus tipos de interfaz:

IMyInterface somevariable; 

¿Por qué harías esto? No entiendo cómo IMyInterface se puede usar como una clase … por ejemplo para llamar a métodos, entonces:

 somevariable.CallSomeMethod(); 

¿Por qué usarías una variable IMyInterface para hacer esto?