If your problem is that you have shoes you don't wear, you're probably buying for hypothetical occasions instead of what you actually put on. The right move is to start from what you actually do: how many times a week do you leave the house? Do you work in an office, from home, on the go? Do you go out in the evenings often? Once you know how your time is spent, pick styles that cover those recurring situations, not the exceptions. For example, I realized I was buying fancy shoes I never wore, while I was going around in comfortable shoes every day. So I cleared out half my closet and invested in pairs I actually wear.
For real versatility, it's worth having a boot or mid-height shoe that sits between casual and formal - like a Chelsea boot or an ankle boot, that you can wear with both jeans and a dress. Then a decent sneaker (not for sports, but for real urban walking around), and if your job or life requires it, something more formal. Neutral colors help, sure, but the most important factor is that they're comfortable: a beautiful shoe you suffer in, you won't wear it, period.
The other thing I'd suggest is being honest before you buy: can you see yourself wearing this shoe next week? If the answer isn't an immediate "yes," it's not for you. Better to have five pairs you wear regularly than twenty sitting in your shoe rack.