I see no purpose in passing in an empty list, since you don't use it's value anyway. It would only confuse future reader an maintainer, especially on the user side. And I would make it static too. Compare this:
var serversList = new ServersList();
serversList = serversList.fillList(serversList);
To this:
var serversList = ServersList.LoadFromResources("Resources/XMLServers.xml");
Personally, I would rather write it like this:
public static ServersList LoadList(string _FileName)
{
using (StreamReader reader = new StreamReader(_FileName))
{
return (BusinessObjects.ServersList)serializer.Deserialize(reader);
}
}
By the way, it would be a classic example of Factory pattern.