Well, historically speaking, first declensions did have a stem in a and second declensions a stem in o, but that got obscured and the final stem vowel and the endings merged so it's hard to see that. People compare Latin with Greek and other Indo-European languages and you can see that in colonus, the original o has become u, in ager (compare Greek agros), the o has just been dropped. So the nominative colonus is stem colono- + ending -s, just like rex is stem reg- + ending -s.
My experience is that some books, especially older ones, take this historical approach, but others will say that the stem of puella is puell- and -a is the ending. I find the latter analysis easier for learning, but the former is important too if you become interested in the history of the language and its connections with other languages.