Best bet is to go read the SilphRoad subreddit.
All Pokemon have 3 base stats:
Stamina
Attack
Defense
Stamina determines HP.
The combination of all 3 stats determine CP, however they have different weighting, so for a Bulbasaur ATT and DEF contribute more to the overall CP than STA does.
So all squirtles have the same base stats, but then each of them will also have randomised bonus values or IVs (Individual Values) for each stat from 0-15, and those get added each time you power up a pokemon, and determine the additional CP you get when powering up.
So a level 40 (pokemon levels do actually exist in the background) Blastoise with 15/15/15 IVs will have a much higher CP than a level 40 one with 1/1/1. IVs basically determine the maximum potential of a pokemon's stats. Most people that are aware of all of this try to aim for pokemon with 80%+ potential (basically their IVs add up to 36 or more).
So you could have say a 300cp Eevee who happens to have 15/15/15 IVs who is only half way up their CP arc, that when maxed will actually be stronger than another Eevee you have that is 600cp but with 9/9/9 IVs.
Highest CP isn't always to ones you should keep basically.