Here's some advice I wrote a while ago that I habitually copy-paste into threads like this:
The optimal army composition is 1.5x your combat width infantry, a full combat width of artillery, and 2-6 regiments of cavalry. (So if your combat width is 30, that's 45/6/30. Obviously you want to split up stacks of this size while in the field to avoid attrition.)
The reason for this is that artillery can fire from the back row, unlike every other unit, and it also gives defensive bonuses to units in the front row ahead of it. Having a full combat width of artillery is very expensive but extremely powerful. And you want extra infantry to fill out the ranks in case some of your initial infantry line is depleted. Cavalry is mainly useful for flanking.
The other key to long-term success in war is army tradition. Try to be at war as often as possible. Choose your enemies carefully; taking on a smaller-risk target before trying to win concessions from your larger neighbors is a smart move, because you'll build up army tradition and prestige either way. If you can, always set your adversary as rival when you declare war, even if they're not a serious threat to you; you'll gain much more prestige from battles, and prestige directly modifies your max morale.
While at war, once you've neutralized the enemy's main army/armies, focus on chasing down the enemy's newly recruited regiments before they can combine into larger stacks. You'll earn a lot of AT that way.
Be sure to consolidate your regiments before battles. Below-strength regiments are much weaker than full-strength. On a related note, take note of the supply limit in the provinces you're moving through and split your armies up to avoid attrition.
And once their armies no longer pose any threat to you, carpet siege them to oblivion. You may not need a 100% warscore (though you often will), but you gain a flat 1 AT from each siege you win. The only reasons to stop sieging and end the war are strategical: if your war exhaustion and manpower desperately need to recover, or you are eager to start a new war on a different front.
If your previous general is old or mediocre, it's wise to hire a new one the moment that last siege finishes, because it's at that moment that your army tradition reaches a local maximum (and thus you have the best chance of rolling a good general). The very next time the month ticks over, your AT will start to decline. Don't be afraid to re-roll a couple times if you roll a below-average leader (but keep in mind that the meaning of "below average" depends on your army tradition! If your AT is only 20, for example, you are very unlikely to get a 6-shock general even if you roll 10 times.). You don't want to waste hundreds of MIL points on rerolls, but you definitely don't want to wage war with a mediocre general.