Ok, so here is an example using the REST API
string apiEndPoint = ConfigurationManager.ConnectionStrings["REST"] + "/v2/users/sthomas.xml";
var WebClient = new WebClient();
var key = String.Format("{0}:{1}", "xxx", "xxx");
var key64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(key));
WebClient.Headers.Add("Rest-User-Token", key64);
WebClient.Headers.Add("Rest-Method", "PUT");
var values = new NameValueCollection();
values.Add("_ProfileFields_Skills", "Walking");
WebClient.UseDefaultCredentials = true;
var xml = WebClient.UploadValues(apiEndPoint, values);