So you're saying my 246CP Dragonite can reach the 3500CP cap by just using stardust and candies?
It's possible!
Just like how in the main games, different Pokémon of the same species have different max stats, different Pokémon of the same species in GO have slightly different max CP, but whatever their actual max CP is will always fall within a certain range. So your Dragonite could reach that 3500 cap ... or it could only reach 3067. This is because the CP of every individual Pokémon is actually calculated by its stats, which in turn take into account the bane of every main series competitive player's existence: the IV.
In other words, CP is actually just shorthand for your Pokémon's battling ability and takes into consideration the stats the game uses (attack, defense, and stamina). These in turn work very similarly to the way they do in the main series in that they're not fixed numbers. Rather, the attack, defense, and stamina varies just slightly for every Pokémon, but there's a set
range for what those stats can be (for every species).
Max CP in the first page you'll see on that link I'd offered up is really just a figure of max
possible CP. The actual ranges are displayed on the pages for each Pokémon (click on a Pokémon name to find them—or
try Dragonite's page for an example), and your Pokémon's final CP, after pumping a bunch of stardust and candies into it all the way up to the point where you hit level 40, could fall anywhere within that range.
Of course, like training Pokémon for competitive play in the main series, just because you're not guaranteed to hit that absolute maximum CP for any Pokémon you catch doesn't mean it's not worthwhile to feed your stardust and candies into your Pokémon. It's okay to work with what you have.
But! There's some worth in the advice that's been floating around where people are telling each other not to power up until you get to higher levels—level 30, to be exact. It's because, yes, you
can encounter Pokémon with higher CPs in the wild than what you might catch at lower levels. (I also take back what I said earlier about max CP Pokémon in the wild: apparently, you can encounter Pokémon right around level 30 you don't need to feed stardust or candies to.) It's just that if you're impatient and want to max out a Pokémon on your own before you get to that point, you're not going to hinder yourself any; the Pokémon you power up now won't necessarily be weaker than the Pokémon you find and power up later. And that's all because every Pokémon has a different stat spread, so you've got no guarantees that the Dragonite you catch later will have a higher CP when maxed out than the Dragonite you've powered up to the max now.
Hope that hasn't overly complicated things. x_x Sorry if it did!