Strength is determined by three factors: Effort Values, Individual Values, and Natures.
Effort Values
Pokemon that have recently been obtained and have not been in any battles have no effort values. Pokemon that have been in one battle or more have effort values. Effort Value-wise, a Pokemon you have trained for a longer time would generally be better because wild Pokemon have no effort values at all.
Individual Values
Each Pokemon has individual values wether it is wild or not. A Pokemon's Individual Values have been determined when they first appeared in any way. A Pokemon can have good Individual Values or bad Individual Values. Wild pokemon will not have any characteristics that give them better Individual Values or vice versa (they are determined randomly).
Natures
A Pokemon can have a good nature or a bad one, depending on what type of Pokemon it is. Adamant would be good on Electivire but not on Starmie, whereas Electivire doesn't use Timid like Starmie does. Magmortar would use a Modest nature.
It all comes down to the different characteristics of a pokemon. To explain this in a simpler way, let me say this: If there were a wild Pokemon and a caught Pokemon with the same Individual Values and nature, the caught Pokemon would be stronger.