We have 2 firemouths (male and female both about 4inches) 2 JD's (both about 4 inches), 1 jewel (3 inches), 3 pictus cats(3-4 inches), 1 synodontis cat (4inches), 1 common pleco (6 inches and going to be adopted by our LSF today believe it or not, he's too darn aggressive!) and 11 giant danios in a 55g.
My point of this is while my tank is overstocked, (yes I do have the filtration to compensate for this) the only aggression problem we have is with our pleco. He has attacked the other fish, myself and the gravel cleaner. No damage done, but he's got a nice new home. Our firemouths will sometimes gang up on the jewel, doing nothing but flaring gills, that's the only show of aggression we've had from them.
Anyways, on to what you can put with cichlids. As I stated, we have giant danios in with ours. Once they got used to the tank and the good feeding schedule, they have grown to about 1 and a half inches and have some beautiful coloring. They swim out in the open, don't hide behind the plants or wood. The cichlids eyeball them but don't mess with them. They are fast swimmers, the cichlids don't seem to want to work that hard for a meal so they just ignore them. Barbs I hear can work well too. Being that they can be aggresive, they can stand up for themselves. Stocking them with african cichlids might not be a good idea, but with some of the south american/new american cichlids it can work. (notice I say can, might etc because as we all know what works for one doesn't always work for another) I have also heard of some people putting some of the larger tetras with them, like the buenos aires tetras. I personally have never seen that, but I suppose it could be very possible.
Honestly, it really all boils down to the individual fish's personallity. Some cichlids of the same species can be completely different. Just remember, you can usually return the new edition if it doesn't work out.