Recently I've had a few auditions where I've needed to use distinctive accents. I thought it would be good to address some of the tips and tricks that help with accent work.
First of all, it's very important to practice. A good tip I had once was to mimic people's accents when they talk to you. It's surprising how few of them actually notice it. When I was a teenager, my friends and I would put on accents when we walked around DC or went shopping, trying to be as convincing as possible. Be careful though, if you're doing a British accent and meet a British person you may have an uncomfortable conversation on your hands. Don't be afraid to have fun with it either, play around with accents whenever you can! I always get a kick out of doing Yakov Smirnoff impressions, and really getting on my co-workers' nerves.
The first step to mastering a foreign accent is understanding its origins. Accents are always easier if you speak the original language, even a little. Every language has rules of pronunciation, and if you know them, you can apply them to English. French, for example, uses hard R's, and sometimes roll them, depending on the region. It's also spoken at the front of the mouth, like they're constantly kissing as they speak. When you first practice French, puckering your lips like that helps get an idea of where the accent lives. Obviously, once you get the hang of it, you can stop over-exaggerating.
Regional accents and dialects are a bit trickier. It's hard to fool a native speaker, and you definitely don't want to be insulting. Again, it's important to discover where the accent lives in your mouth. It helps to listen to others speak the accent, and then choose a few characteristic sounds that really make it recognizable. It helps to annotate your script incorporating those sounds, so that as you read and memorize it you can trigger the right sounds when you speak. For example, use a symbol that makes sense to you when a word needs a flat "a" sound, or an "ee" sound when you have a short "i" like "it", as many accents use.
The more you practice these elements, the more natural the accent will sound. Try and see if you can (privately) identify a person's origins based on their accent. Identify your own, and try and understand the elements of it. The best way to master an accent, in short, is to break it down to it's smallest parts and understand how they work together.
I found a few things very helpful recently, and I would like to share them! First, the accent database at the International Dialects of English Archive! It's amazing! People from all over the world, of all ages and races, speaking in their own accent, reading a bit of copy and then very naturally talking about their lives and the way they speak! It's amazing. Oh look, here's another one from the good folks at GMU! Another helpful source is this video from a voice actor that really breaks accents down. He has tons of them, and is pretty good at showing you how to pick them apart.
And here's a video of me doing a German accent! This one was really challenging, because many German people try to mask their accent when they speak English, so I had to play a German accent trying not to be German. Very meta. I had a lot of help, but you can judge how successful I was. PS, this was like, 6 years ago or so. I'm a better actor now.