There are many different types of toilet bowl stains. An abrasive cleaner such as Ajax or Comet works great. Some require something with more power. A cleaner such as Lime-Away or acid containing cleaner will help with many stains. If the stain is bad you might have to drain the bowl and pour the cleaner directly on the stain.
One simple and cost effective way to clean a toilet bowl is to use diswasher detergent. Simply double the amount you would use to run a load of dishes and scrub the bowl with a bowl brush. Let it sit an hour, and your stains will be gone.
To clean a toilet know a days lot of toilet cleaners stain removers are available in the market. I use lyzol which is very good toilet cleaner,I not tried any other toilet cleaner other than one i mentioned here.
I found the greatest thing to clean the hard rust stains from the toilet. It is a pumice with a handle at the grocery store in housewares. It really works. Thought when we redid the bathroom we would have to replace the toilet, but we did not. Still looks great!