I have an xml document which looks like this:
string key = "version";
XDocument xdoc = XDocument.Load(path_to_xml);
xdoc.Descendants("add")
.Where(x => (string)x.Attribute("key") == key)
.Remove();
UPDATE You almost did the job. What you missed is filtering elements by attribute value. Here is your code with filtering and removing selected elements:
xd.Element("Applications")
.Element("myApp")
.Elements("add")
.Where(x => (string)x.Attribute("key") == key)
.Remove();