Make sure your not attacking over a river. I've lost entire armies because of that. When I reloaded to test how powerful a defense that actually was and moved to the other side of the city, I barely lost any.
Make sure you bombard till the defense is all gone, and attacking with siege weapons to cause collatoral damage.
Yes promotions are powerful. If you really want to attack make sure you have that religious civic that increases your army units skills, and choose the city attack skills. When playing as Japanese I had 3 promotions on my guys as they walked out the door, and that was very very powerful.
The +Str isn't too powerful, when attacking a city see what they got and do your promotions to match, city attack, or even to counter the specific unit, such as +25% vs archers if their using archers.
When attacking make sure you have at least as many troops as they have in the city. Maybe +50%.
Make sure you attack in 1 turn that way they won't be able to heal.
Once a unit has been damaged it can pretty much be eliminated without much trouble.
When attacking a city you will loose alot, mostly all your attacks will just end up damaging enemies. That way you need another 50% to finish off their defenders. Don't expect to wipe out an enemy army in 1 attack.
You can see the combat statistics int he bottom left hand corner when you use the right mouse button to tell your guy to attack, holding down the button and see you chance there.
If you can't beat a town then pillage everything around it. Doing this will make it harder for them to replace their units. Also! their pop will drop.