sort by EE, then take the first row for each group using a self join:
ordered<-accts[order(-EE)] #Descending order
setkey(ordered,DnB.Name) #must setkey before join
ordered[J(unique(DnB.Name)),mult="first"]
For reference, check out this post on crossvalidated: https://stats.stackexchange.com/questions/7884/fast-ways-in-r-to-get-the-first-row-of-a-data-frame-grouped-by-an-identifier
EDIT: even faster, but weird syntax:
accts[accts[, .I[which.max(EE)], by = DnB.Name]$V1]
For reference, check this post with a similar question: Subset by group with data.table