Usually my methods are as the following:
public List Method1(int input)
{
var output = new List();
//add some items to output
Return the interface that you need in the code calling this method.
If you need to do list actions on the result, return IList.
If you just need to enumerate the results, return IEnumerable.
Those are the ones I use most, actually. I never return arrays from public interfaces unless there's a very good reason for it.