Usually my methods are as the following:
public List Method1(int input)
{
var output = new List();
//add some items to output
"Framework Design Guidelines" (2nd ed) in §8.3.1 has quite a lot to say about collections as return values, summary:
Collection or a subclass of Collection for properties or return values representing read/write collections. ReadOnlyCollection, a subclass of ReadOnlyCollection, or in rare cases IEnumerable for properties or return values representing read-only collections. (and more, but these three capture the core).
The first of those above: don't return reference to internal collection unless you want the user to be able to change it (and then likely you should have a custom type so you have a degree of control).
I would return IList and ensure I do not define the actual type I am returning, unless I was returning an iterator (when I would use IEnumerable).