This topic has been subject to everything from three paragraph blog posts to doctorate theses. It's a complex, dynamic topic the face of which changes every time a new market is defined and a new game/app genre is discovered. Add to that fact, you posted yesterday and bumped it today, means that folks might have great ideas, but just don't have time to post here, because they are busy marketing their apps! Fortunately, I'm currently procrastinating so I'm writing a lengthy post. YMMV on whether it was a good use of time
Your title has a lot of questions, but the main answer to all of them is: it's complicated. Making an app that makes money (or even one that makes it's budget back) is hard to do. The process is certainly more science than art, but it's a science in it's infancy. You're going to have to make several conclusions based on your own project(s), which will assist you with understanding how to move forward with marketing. Some of these decisions include:
1. Spot your market: there is very little benefit trying to sell a new dentists chair to an orthopedic surgeon. If you're making an app that has a focus on world-building and farming, you aren't going to advertise on a website for first-person shooters. Know who you're making your game for, know who will spend money to play your game, and know where those people live. Make sure those people know about your game, and make it easy for them to get it.
2. Calculate your marketing budget: if you have no money to advertise, that isn't the end of the world. There are several game review sites and personal blogs with a large enough following that you can target to provide some exposure. Spend time doing Google searches in this vein. If you DO have a ton of money to throw at it, then you should do so. Small dev studios can see a relatively good margin when going through ad campaigns with Facebook et. al. DO NOT PAY FOR GAME REVIEWS.
3. Be engaging: these days, you're just as likely to sell the sizzle, as you are the steak. Every struggling indie gamedev laments the fact that their cool, fun, interesting game isn't getting enough play with people, but the devs that succeed, do so because they cultivated a fan base. They had a running devlog on TIGsource, or they had an active blog showcasing progress, or their Facebook account hosted contests for fan art. In this business, it's OK to let people watch the sausage get made. In some cases, it makes them appreciate the meal when they finally get it (sorry, I haven't had breakfast yet so all I can think about is food).
I know this post has been heavy on metaphors, but there is no magic button that makes your app a commericial success. It takes a combination of money, determination, business acumen, and luck. You're going to have to find the right balance for your project.
TL;DR: It's a difficult topic, and anyone who has the silver bullet has no incentive to provide it to the little guys. Work hard, make a compelling app (or at least a compelling marketing strategy) and don't shut up about the project you're trying to promote. Good luck!
For the record, none of my personal projects have been financial successes, so my advice comes from a position of complete ignorance/arrogance.