When I think of the word ugly, I think of nastiness. Many of the villains in literature have ugly spirits, as do their counterparts in real life. The first things that clues us in to a villainous spirit are words and behaviors--which are often only the tip of the iceberg.
Ugliness is bone deep and is almost always obscured by surface traits that are more appealing. A person is handsome or pretty, holds a prestigious job, has an attractive spouse and children and we all think, "What a nice person. So smart and successful." Handsome and rich don't equal kind and generous any more than pretty equals honest.
In every serial killer book I've ever read, someone makes a comment about the neighbors of the killer being shocked to learn that the nice, handsome, next-door neighbor was, in reality, the twisted, evil, ugly, killer.
Why do we equate surface beauty with nice? Why do we equate a lack of surface beauty ugliness?
Ugly isn't a lack. It's a surfeit of stuff that's rotten, only someone prettied it up in a disguise. Think about the villains we create on the page; think about the villains we've encountered in literature and on the big screen. Their ugliness is hidden beneath a layer of masks.
Some writers do a better job of characterizing and motivating their villains than others do because of the multitude of layers they use to cover up the ugliness. If we use the same process with our non-villainous characters--layering an unexpected trait with a variety of disguises--imagine the complexity we'd be able to create.
What other "hidden" traits do you bury beneath the layers of characterization?