For one part, your idea cant be protected so easily. Even if you manage to patent it (good luck), the patent is worth next to nothing if you dont have the money to pay the lawyers. If you had that money, you probably wouldnt ask here, but be busy hiring programmers.
Now just look at all the StackExchange clones out there. Show a good idea, and quite a few people jump at it and reprogram it. Its not that much of a deal. Many people have time on their hands, but not the great idea. The idea of StackExchange is great and new, and what sets it apart. But ideas are fair game.
You can protect your code, though. But if you do, you are out of the game if someone rewrites your program and is more successful as you.
By making your program open source, that same guy might actually help improve it. Your customers will still pay for your knowledge about the tool, which becomes better by others contributing. You may get more customers, and do more support, and less programming.
That means, if your idea is good enough to become a success, and you dont have money to back you, open source opens a chance to evolve your idea. If you stay on your toes, you might make more money from it than otherwise.
One particularly painful part of the open source project is this: Other people read your code and tell you what mistakes there are. But if you are willing to pick up on that, you will become a better programmer faster than with hacking alone. The price you pay is less control over the idea.
Also, if your idea is good for big business, the big ones might just take it over anyway. The year or so of programming you may have put in there means nothing to a firm. They just rewrite the thing and ignore you. That way they get the knowledge of the code, written by their standards by their people, which makes it more valuable to them than your code would be, stolen or not.
If you choose to go open source, I recommend using a license that prevents commercial use of your code. They should at least pay for the programmers. Make selling your code or knowhow an option.