I thought this was a nice approach http://www.gamasutra.com/view/feature/186088/postmortem_intelligence_engine_.php?page=2. TLDR version: Have the AI play millions of games against one another every single night with genetic algorithms to optimize their behaviour, then see what the results are like. If the genetic algorithms are coming up with a very unbalanced strategy, then you probably have an unbalanced game.
I have a similar, far cruder approach in my RTS, where I simulate many games overnight and randomly assign a tactic to each AI, then see if any of them are succeeding too well and adjust costs/effectiveness accordingly.
These are very programmer-centric approaches though. I'm not a designer, but I think the more common approach is to take a good guess with the help of some spreadsheets (you probably want to define weapon strength in some common unit, like damage per second, and make sure no weapon offers too much damage per second per dollar), then refine it with a lot of play testing. Of course it'll be tricky to calculate damage per second when you account for splash damage, accuracy and non-damage effects (e.g. slowing down enemies), so you'd need to introduce formulas to fudge the damage values a bit according to these sorts of properties.