I've never known what to use it on. So I always save it trying to find the ultimate pokemon I feel worth catching with it.
I keep finding that regular pokeballs seem more effective at catching pokemon than great or ultra balls. I recently caught Ho-oh in Heartgold- after wasting tens of thousands of pokedollars worth of various pokeballs and health items- and I caught it with a regular pokeball.
I use my Master Ball on the most powerful legendary of the game (e.g. Mewtwo in R/B/Y, Ho-Oh/Lugia in G/S/C, Rayquaza in R/S/E, and Arceus in D/P/Pt.). For the legendaries you have to fight as part of the plot, like Dialga/Palkia, and Groudon and Kyogre, I catch them normally. Also because they typically have more awesome music than the other legendaries, it gives me a chance to listen.
I usually end up not using the Master Ball because I'm too stubborn to quit trying to catch something once I've started. (It'd be like, "Okay, if I waste another Ultra Ball on this thing, I'll just use the Master Ball . . . NO, I CAN'T, I WON'T ALLOW MYSELF, RESET TIME." And I eventually catch it, most of the time.) Sometimes I'm just replaying a game for fun and I use it on the 'boss Pokémon' to get it over with or something.
I used to use them all the time as a kid but as time went on and my skills got better for catching pokemon (up+ I quit using them. For example, in my copy of White version, I caught every legendary with a pokeball and it wasn't even that hard. I caught Zekrom with one shot. Only Victini was the one I caught with a great ball because I ran out of pokeballs. The only time I can really remember using a masterball after the game was through was when I was playing Leafgreen version and I ran into a wild Raikou! And of course I just had to catch it so I used my masterball.