FREE - In Google Play
FREE - in Win Phone Store
I don't know, mating patterns aren't a big part of what I studied. I agree you should know some mates with a bishop or a knight on f6, otherwise mates can always be calculated. I don't think knowing hundreds from the top of your head will make you much better. In fact the harder positions are so incredibly rare, no regular player gets it on the board before having committed half a dozen cardinal sins against tactics and basic positional play.
I say: A little strategy, a bit of opening knowledge and a lot of tactics gets you a long way.
Here's an idea, which costs no money. Download SCID (a free database program). Populate it with games via ICOFy, http://icofy-blog.de/, Filter SCID to get games that do not end in draw, played by highly rated players (and any additional criteria you wish). In the filtered games, pick one at random. Advance to the end of the game. If it ends in mate, back up 5 moves or so and see if you can execute the mate against the engine included in SCID. If it does not end in mate, advance to the end and try to mate the engine. Repeat a few hundred times. You will learn many mating patterns as well as how to win won games. You can also filter for games whose text contains '#', which means the game ends in mate. Advance to the end of the game, back up one move (all without looking at the score), and you now have a "mate in 1" problem. I used the latter technique to come up with puzzles to give to kids in a chess club I help to run. It is quite effective. If you can afford a book, you might look at Polgar's Chess, which has many mate-in-1 problems. These are not common mates but do a good job of sharpening your eye so that you can find mates in complicated positions quickly. Polgar's positions can be found on the web in pgn format, but I think it is a bit tacky to download them without also buying the book.
Nice idea, it can't hurt endgame technique to look at positions after GMs resign and see if you can win them.