Assault is a situation when an army that is besieging a city decides to attack it instead of waiting until defenders surrender due to lack of food and water. When you click an army that is besieging a city, you will see a special button that allows that.
First, only infantry (and artillery) can take part in an assault, so if you have a cavalry-only army besieging a city, you'll have to wait until the city surrender.
You also need a decent morale to assault, thus, if your army was just attacked (or if you just unsuccessfully tried to assault during the month), you'll have to wait at least until next month. You shouldn't try to assault without full morale, still.
When should I assault?
Your rate of success depends on :
- The level of the fort
- The size of your army (not counting cavalry), and the remaining opposing garrison
- The amount of artillery you have
- Your morale (and the opponent's)
- The quality of your general
- A breach in the fortress (siege effect)
- The Fort Defense rating of the province (In Nomine only)
As a general rule, you shouldn't assault level 2 or more fortresses, unless you have a huge advantage in terms of technology and army size, possibly a good general too; even then, expect casualties. Of course, this is only true for an unbreached, fully garrisoned fortress.
Level 1 fortress are more of a choice. If you can afford to waste a lot of men (i.e. if you have a high manpower and a lot of available infantry regiments), and you don't expect the enemy to counter-attack there soon, this can be a good opportunity to quickly gain control of several fortress in the first months of a war. As war is going on, you'll probably do less and less assault, though (you'll need your armies to fight). A province with an unblocked port may take some time to besiege, assaulting them may make things faster.
In any case, you should have at the very minimum about 4000-5000 men to assault a fully garrisoned level 1 fortress (and even then you'll probably fail, unless morale advantage, or need several attempts), 8000 is a good bet.
If you're besieging and have a breach, assaulting is much easier, but it's often better to just wait a few more months that the fortress surrenders instead of wasting men (and time).
In In Nomine, if your opponent has scorched the land of a province, then you should consider assaulting due to the 24 months of high attrition that a scorched province has.
When should I not assault?
If you have good siege generals, you're probably better "covering" several provinces and besieging them, while saving your troops, concentrating them at choke points or actively trying to destroy your opponent's forces meanwhile.
If you expect a counter-attack or are deep in enemy territory, don't assault, because even if you succeed, the garrison will take several months, or even years, to reach its maximum, while you army will be very vulnerable due to its morale and casualties in the assault. If the enemy push your army away, he'll most probably assault your weakly-defended fortress, and will reinforce it much faster than you (garrison grows much faster in you own provinces).
It is very risky to assault when your king is leading an army. For some reasons the rate of losing kings during assaults is very high, so if the guy is very decent, don't risk his life needlessly.
Finally, the sole number of troops you have is not as important as the number of men per regiment in your assaulting army : if you failed an assault and went to 0 infantry, and you have, say, 20 regiments, you should gain 1000 men each month, but even if there are very few men remaining in the fortress, you won't beat them with your peg-legged soldiers, even if there are 3000 of them.
In In Nomine, beware that even a successful assault will probably leave your army short on morale - and if your army is outnumbered 2:1 and runs out of morale in a fight, they can be completely wiped out.