Easiest short answer...
1. Find a problem you experience on a daily, weekly, monthly, etc.. basis.
2. Develop software solution for said problem.
3. Resell said software.
It may not happen on the first try, the second try, or the 100th try, but you are bound to find something that someone has a need for and is willing to pay for. You may not get rich on all of them, but each small success will build upon itself.
Whether it is profitable or not depends on many factors, but the sum of those factors is what did it cost you to develop the software and what does it cost you to maintain it. Does the software require multiple developers to maintain or a call center to support?
As for features/languages. Start small and grow from there. Listen to your users and what they want. Release quickly and often. It's always easier to add features than to be in a constant state of development. For the language, simple, choose what you are most comfortable with. Everyone has their own opinion about every language and framework. If you are more comfortable with PHP than Rails, then PHP all the way.
Clients. Start with a website. Blog. Twitter. Depending on the software, maybe some Google or Facebook ads. Forums. Friends, family, colleagues. Each group is going to be a different approach, but in the end it is all the same.
Consumer vs. Business. This is really dependent on you and your preferences.
Taking the leap. Just do it. If you are not comfortable jumping 100% in, start small and build on your off hours from your job.
Compared to a decade ago, it is a lot cheaper to try and fail today.
For more info you may start with @patio11's blog: http://www.kalzumeus.com/blog/