My personal take is this: Stardust is precious in Pokemon Go. You only want to power up Pokemon that you will need and use on your team, for both your attackers and your defenders. Do not power up Pokemon such as Rattata, Pidgey, Weedle, Sentret, and so on. Do research online and see what the max CP of a pokemon is as well as their movesets. If they have good CP, good moves, and they fill in a role on your team that you are missing (such as needing a grass type pokemon), these are pokemon that you want to power up. Do not power up 5 fire pokemon or 5 water pokemon. You want to have a variety of pokemon for a variety of situations, both offense and defense, so use your stardust wisely.
Once you decide what you want to power up, you need to use the appraise command under the settings of your Pokemon. From here, you can use this information on an IV calculator, whether online or in an app. If the IVs are good, and the pokemon is strong and good fit for what you need in your team, then power it up. My personal threshold for IVs is 80%- anything under that I do not power up. Looking at moves, movesets, IVs, and what pokemon you need can be very time consuming, but it will be worth the trouble.
So far I have been speaking about ideals. In a real playing situation, you will not always be finding 100% Rhyhorns in the wild and 100% Dratinis from eggs, or the moveset may not be the best. In these cases, it can still be okay to power up a Pokemon, since you can always get TMs from raids now and IVs are not too huge of an effect (though anything helps and you should still try for as high IVs as you can to stay competitive).
So, it may be okay to settle for a pokemon slightly less than ideal. It is a judgment that you have to make when it comes to what Pokemon to power up. Find a healthy balance between keeping up with the game (whether it comes to powering up Pokemon needed for any given raid boss that is out for a limited time only or otherwise) and holding out for Pokemon that really matter.