Polish is generally the result of time you spend against doing something that wasn't part of your initial to-do list, and got added to it after you thought you were done with it.
It demands that you finish early and dedicate time to polish.
It may be very hard, at time, to differentiate bugs from polish items, because their nature tends to vary based on who flags them.
Technically, a bug is something that cannot be really discussed (though that's arguably ever true). Polish items are generally much more subjective, and can only be flagged by those that have a good understanding of the game, the general vision, and the competition.
One key example is in platformers: you can get the jump functionality, but is it ever "right"?
By 'tweaking" the jump, you tend to tweak a lot of things (physics, level design limitations, combat, etc.) Getting the 'jump' mechanic 'right' isn't just a question of flagging a few bugs about it, but taking a step back, playing the game, and seeing what works or doesn't feel right, try something different, and see whether it makes anything else work better or worse.
Also polish is not a boolean value. It's really just a measure. Your game can always be more polish (there's no such thing as polish, it even becomes 'production value'). The question is really when are you satisfied with what you are shipping, and this all comes down to experience.
The more experienced you become, the more ideas you have on how to polish certain mechanics, but also, the more demanding your become of your own product. You won't settle for crappy execution and will need to gauge budget/time constraints vs what level of polish you are comfortable shipping with.
If you're wondering when your games are polished, ask yourself instead how you feel when you're shipping. Are you satisfied with the work done? Then, it's polished enough. If not, don't release unless you have to.