I have been involved in recruiting from agents for some time (including several mentioned in other replies here), and they are a very expensive approach. They seem to have very little ability to distinguish candidates with different skill sets except on the most basic level ("has this person ever programmed in Java?", that kind of thing). Whilst we would ocassionally get suitable candidates, they would be outnumbered 100:1 (literally) by candidates who were not even really close to what we required, despite myself putting lost of effort into communicating with the agents and sending detailed written and verbal feedback on every candidate.
My feeling is that the agents actually filter out the candidates we required by only searching their database with the most basic and obvious keywords. And being unable to understand what most of those keywords mean (in some cases even basic synonym recognition) If the candidate's CV was not litered with buzz words and names of technologies they wouldn't come through to us.
It also seemed that the Agents would favour their biggest clients. Only offering smaller clients the left-overs (which is, frankly, what I would do if I were in their, commission and target heavy, situation)
From your point of view, that would mean that the companies that might be best suited to you - the agent may never even realise, or deliberately not tell you about.
If you can, I recommend trying to see if you can go more directly to the company (they may even offer you some of what they would normally pay in agent fees as a joining bonus). We now only recruit by advertising directly, to prevent the agents fitering out the people we want. Try searching around for software companies, and see if they have recuritment contact information on their websites?