First, I am not one for exploring much. I prefer to make a strong group of cities around my capital and likely that affects my tactics. I am generally a warmonger, and feel a good defense is the best offense, so keep that in mind. And I usually have 2-3 key cities that can pump out my best units in 1-3 turns.
Early game: (were talking from the time you make your first archer). If there is a neighbor who is too close to your border or his city is likely to gobble up a key resource, go to war. Plunk an archer beside his city on a defensive square, then reinforce. That archer(s) should be able to hold his own until you can get some swords to take the city. Note: A early battle can put you behind a bit, but if it means access to iron or copper or a quarry, it may be well worth it in the long run.
Mid game: Against a weaker opponent - build up enough defenses along your border before the war. Build up some horse units and Pikemen. Keep an eye on who he has open borders with since he will usually send his pillagers from an indirect route. Declare war, and move to semi-circle his city. I use stacks of 3-4 units, balanced stacks. Likely when you get to the city, if you have the tech advantage, he won't attack (maybe with cannons). And even if he does, losses are minimal as you only have a few units in the stack. Wait till all your units are in place. Use your pikemen and horse units to track down any pillagers that got into your lands. Use extra horse units to run amuck in his land away from the city you will take. Once you have 3 stacks in place, bombard, then attack, usually will take 2 rounds to take the city. End war ASAP.
Against a superior opponent - (example - my current game, India had rifles and artillery, I had muskets, m-gunners and cannons). Reason for war: it was a hostile neighbor who was leading the game. Rather than wait for them to attack, I prefer to attack when I am ready for it.
I use a line of M-gunners along the border. I move a group of m-gunner/cannon/grenadier stack into hostile territory. Usually a couple of these stacks. Try to move to resources or defensive group. Pillage, including the road. They will likely attack with artillery, you will lose, no biggy as losses are minimal (at most 3 guys). If that group of 3 dies, move your next one in. Keep advancing till you near the city. I usually keep a group of old stuff swords/samurai/pikes/knights one square behind. And behind these I keep my stack attack (cannons). These can be used to fill in any holes and also to be placed with your main units (assuming they are all wounded) as a sacrifice to the next attack.
If you see a stack coming your way, feel free to fall back. Since you have destroyed all the roads up to where you are, they have no movement advantage, when they pursue (likely attack and killing your stack of 3), your cannons are waiting for them. Cannon away, and use scaps (swords/samurai) to clean up the leftovers. It is better to let the stack come to you with no movement advantage than you move to the stack.
Basically he has no offense now (assuming you have picked off any marauders) and he is holed up in one of his cities. You now have two choices - (1) try to take the city, (2) pillage the area. I usually go for #2. If you try and take his city it can turn into a nightmare quick. You need to get your cannons into place without them being slaughter by a infantry/artillery units. In order to attack you need to move the units to the front line, and hence they are succeptible to attacks from units that you just can't see. Trying to cut off supply lines to other cities using knights/horse units is generally slow and costly. Trying to do that with m-gunners is safer, but far too slow. But as long as he can reinforce his city you are likely not going to take it.
Option 2 is usually more effective. Note: option 2 is a slow process, step by step movement of M-gunners and plundering isn't the fastest method, but generally he won't attack and if he does, it is rarely with enough force that you will lose your 3 units. Whatever unit you lose, fill it in with a reserve from behind the front. After you have cleared a few towns and food sources, declare peace.
With a few rounds I find that the civ will drop from #1 (if he hasn't already). The loss of income and food to one of there largest cities is usually too much. Populations usually plummet and research is crippled. Note for this specific crippling attack, I have caught up with ground forces tech and managed to have a tech lead (flight) by the next era.
Modern Era: it is hard to fight against a technically superior opponent without serious losses. I only attempt this if I have approximately double the number of "good" cities as the opponent. And, it is best to have airports in most of your inner cities (border cities will likely be useless during the conflict). I usually line my border with SAM inf and M-gunners. Bombers like to target the m-gunners, and well, once in a while a SAM might hit one. I have at least 3-4 fighters in every border city to attempt to intercept bombers. Tank/heli combos for plundering as you go. Keep artillery/SAM in the rear. If you can spare the units, a marine/SAM with the tank/heli unit would be good, but this tends to make good targets for enemy bombers. Same strat, plunder forward, fall back when confronted with superior foe/stack. When they advance use artillery to weaken them. If you have bombers/fighters, use these to weaken the enemy untils before you engage, this gives your inferior armor a chance to actually win. Expect losses, more than once I have seen two of my tanks fall to the same badly damaged mech infantry.
Taking a city can again be a pain, however, with the right amount of bombers and getting your artillery to the city safely, it is still feasible. You really need to beat the city to nothing before you attempt to attack with your tanks ect. I generally find at this stage, the enemy rarely attempts any serious offense. Sometimes the odd Heli or Mech Inf with try to plunder (not much left due to his bombers), but that is about it. Mainly they are trying to intercept your assault and of course bomb your border cities and resources. Generally your worst enemy is your own people. If they quit working, start the peace negotiations. But if you are quick, you can take a city or cause serious damage before your citizens start complaining.
I find around the noble level, with the correct tactics, some patience and a well designed empire you can easily overcome a nearby enemy with a technically weaker force (especially for the earlier game). And although every assault might not produce a new city, you can cripple his production and research to help you play catch up. And when taking on a superior foe, you always need to look at the other factors: who are his friends, who are your other neighbors and do they like you, how strong are your defences - if you have focused all your resources on a city assualt, you may well get attacked by another civ, open borders (and his naval capabilities), game speed, and if things go badly, do you have an peace plan.
Kilt.