There are semi-aggressive cichlids that would work in a large community tank. Bolivian Rams, German Blue Rams, I have heard Apistogramma, Angelfish, Discus, etc. However, I don't recommend these fish in a 20 gallon tank with other fish. I think 55g would probably be your minimum for most of these fish w/ community (discus might be larger, don't know, and apistos might be kept in smaller, as they live in 10g tanks be themselves sometimes).
Actually, I have heard that krib* (*I can't remember the entire name, help me out community!) are peaceful cichlids, but I'd research the behavior of this cichlid before putting it with other fish in a smaller tank.
As for sharks, Red-tailed shark and Rainbow (and albino rainbow) shark are the most common. Another common shark is the Colombian/Blackfin shark. WARNING: don't get a blackfin shark unless you are planning to setup a 120g or more Brackish tank!
Sorry for the bold. I just don't want someone to skim through this and not see that you can't keep Colombians.
. They are semi-aggressive and can sometimes be mean. They will probably get meaner as they grow. From what I understand, you can't have 2 of the same kind when it comes to RTS and RS. I don't even think you can have RTS and RS together. Sharks need alot of swimming room, so I'd recommend a bigger tank than 20g for either species.
You can view Tropical Fish Keeping's profiles to check the minimum standards of the sharks, as well as the cichlids.
Good question! Hope this helps!