Anything that deals damage in Supreme Commander 2. The three basic types are direct fire, indirect fire and Anti Aircraft.
Direct fire weapons always fire directly at their targets, units like the rockhead tank and loyalist assault bot use these weapons, they are extremely effective against moving land units, but usually don't pack enough punch to be effective against buildings.
These weapons don't fire directly at their target, but usually arc towards their target, good examples of these are artillery and tactical missiles. They inflict high damage on units unlucky enough to be hit by them, making them excellent against buildings. Although generally tactical missiles are ineffective against land units, when used properly, artillery can be extremely effective, due to their splash damage and lower arc. A heavily mircomanaged army of direct fire units can easily overwhelm and destroy an equal sized or even bigger army of indirect fire units without taking many casualties.
These weapons target air units. Most AA is fairly accurate and will hit moving targets. It can only target aerial targets.
Unlike many RTS's, units in Supreme Commander 2 can and will shoot at multiple enemies in range, meaning a Megalith will target up to seven different units. For this reason, using a combined air and land attack can increase the damage you take, compared to a pure land/air based attack using equivalent mass. On the other hand, if your opponent knows you are going to attack with only air or land units, they can stack more or less AA.