What dictates who can use what magic in Fairy Tail? I know we have met a few people with a few types, but they tend to relate and many mages stick to one kind. 

I mean I know Dragon Slayers have their own set of rules going, but Mashima has never dictated that if other magic is a straight up a hereditary thing or not. 

So could Lucy learn how to use Cana's cards since they are both object mages? Or is these something that prevents her from that? But on the other hand she was able to use Urano Metria, a caster spell, which was unusual. 

Why don't mages learn a bit of healing magic or something similarly useful; even if they can only use these spells at a limited low level they would help a little bit. 

So what exactly is keeping one mage from learning other magic? Is it just plot? Easier to study just one?
First to dispell some misconceptions:


I don't think that dragon slayers have any rules. Anyone can become a dragon slayer provided that he has a dragon to teach him, or he has dragon slayer lacrima to put in his body. Both are rare, thus there are not that many dragon slayers.
I speculate that Lucy could learn to use Cana's cards. (Personally I think that a monkey could use them, but that's just my opinion.) But not because card magic and celestial spirit magic is both "object magic". Celestial spirit magic is a summoning type of magic.
In my opinion (sorry for the speculation again) Urano Metria is not a caster spell. When Lucy used it she actually summoned the power of the stars themselves. (Note that some stellar objects actually appeared.)


And now to actually answer the question:

We saw people using different types of magic. Like mentioned before Makarov uses titan, but we also saw him to cast fire. But he also used Fairy Law and other energy type attacks against Jose of the Phantom Lord. We also saw Luxus using Fairy Law while he usually uses dragon slayer magic. Hades used various kinds of dark magic, while in his old days as Purehito he probably had a less dark repertoire. We know that Zeref can use at least two kinds of magic: living magic that created the demons and that black thing that brings instant death. Mirajane has both transformation magic and Satan Soul. But my favourites are Ultear and Jellal. Ultear used both time magic and ice make. And Jellal basically learned Mistogan's magic to add to his repertoire on the tournament.

With all of that in mind, no, nothing dictates what magic people learn. Actually a lot of them learn different types of magic. It's probably just that they are better in one field so they don't really use the other most of the time (Like Luxus.) Or they have personal reasons to not use the other type (Like Ultear.) Or they are so good with one type that they don't even bother learning others. (Like Natsu.) Other than that only the competence of a mage defines if they can use a magic or not.