I have done quite a bit of research before posting this question, so when I say I have a "good" startup idea it means:
I have read that the best way to check if an idea could be successful is to talk about your idea to your close friends and ask for their feedback. I have talked to my close friends, and they have given me positive feedback on my idea.
The second way to check if your idea will work is to talk to an investor. This makes a lot of sense because if they like the idea then the idea is actually good and worth investing my time and money into it.
My problem is that I am disclosing my idea to many people, and if I don't I cannot validate if my idea is actually good. I guess most people with an idea have faced similar problems. So, how should I go about it?
I suggest you to have a look to the basics of lean startup, like Four Steps to the Epiphany (pdf), Running Lean, or Steve Blank's and Eric Ries' blogs.
Talking with an angel or investors might be useful since they see many companies and listen to many ideas, but it's not going to make your business successful.
The best approach is to make all this discover & validate process more systematic. Here is a possible process.
Step 0) you already broadly defined the idea and the solution
Step 1) Define your target market (nothing fancy, just answer the question: who is going to buy my product/service?) Define the problems you are solving and write it down (one slide). Define the solution (one slide). Design some mockups of the product (HTML works best, if it is a web app, but mockups on paper are fine).
Go out and interview at least 10 people, showing them slides and mockups. Don't go to your friends, go to your target market.
Ask them if they experience the problems. Ask if they think your product solve the problems. Let them "use" the mockup (that's why HTML, or a usable mockup, works best).
In this phase you might discover that many people don't experience the problems you are trying to solve, or they think they're not that important. Or you might see that they actually don't understand how they could solve it with your solution.
Write down every feedback, doubt, misunderstanding, problem with the mockups, and refine the slides and mockups until the people you have interviewed are happy.
Step 2) Define a price for your solution, and go back to the people you interviewed to understand if they are willing to pay that price for the product. How do they prefer to pay? Monthly? Yearly? Flat fee? Per usage?
Discuss with them what's the best pricing, and what's the absolute minimum feature set they want for that price.
If they are not going to pay (frequent situation), you have to modify your proposition. Ask what is valuable for them, what's the killer feature, what's worth paying. Don't proceed if they don't agree they are willing to pay for the product, but keep iterating until you have something worth paying.
Step 3) Build the product (with the absolute minimum feature set, or MVP, minimum viable product) and go back to the user and ask them to buy it.
Refine the product until they are happy with it. Don't offer it to the general public at this point, just work to make the first customer base absolutely happy with it. This phase might take months.
Step 4) Once the first set of customer is happy with your solution, congratulations! you are ready to market it.
Have a look also to a blog post on Customer Development I wrote a few months ago.