Check out 'colbycheeze' on Youtube. He has an excellent "first impressions" video of Ahri that's boosted my game immensely.
The main point he makes that helps me to be successful with Ahri is this: despite her design intentions, she plays better as a carry than as an assassin. She's bursty, but not enough to drop someone's health from full to zero in a few seconds like some assassins do. Also, most assassins work the way they do because of their builds (items like Phantom Dancer). There aren't any AP items that function in the same ways that AD assassin favorites do, so it just doesn't happen.
That said, Ahri is still capable of some pretty sick pick-offs, mainly with her ult. If you're chasing an enemy at low health and you don't think you can catch up, don't be afraid to spend her first ult dash only to get closer. Her ult is also crucial for ganks, as you can easily put yourself between and enemy and their route to safety - and if they change course, you can do it again, and again. Her W works really well with her ult since you can appear in a spot and smash someone 3 times in addition to her ult blast.
I tend to play patiently aggressive with her (not passive-aggressive). She can't bring a champion down from full to zero, but she's excellent at taking advantage of someone out of position - wait for that moment, then unload. Charm can sometimes be used as an initiate for a team fight, but don't run in too far for it. I use E, Q, W, and if I have Sheen or Lichbane, I try getting an autoattack in between if I can. I also like to watch for the weak points - if someone drops low, ult in before they can escape, but remember you have three jumps. In an ideal situation, I like to ult myself in a triangle, hopping around the enemy team and landing back where I started. Sometimes you will need to use that last jump to escape if they all turn on you - don't be afraid to do that. Remember that she's kind of squishy, and in case of emergency her ult can be used as an escape. It might feel like a waste, but remember that dying gives the enemy team money, so if you have to use it to deny them that, it's still worth it. Consider this your worst case scenario, though the cd is only a minute so it's not a terrible worst case.
Obviously you'll see her mid-lane, though sometimes she goes bot and does pretty well there. This is really a sort of extenuating circumstance, but it can be an effective way of throwing off your opponent. My build order is boots + potions, Sorc boots, HT revolver, sheen, WotA, Lichbane, and then it's situational. If your team's doing well, go Rabadon's. If not, Abyssal Scepter. If you want faster cooldowns, then Morello's is good, or sub Sorc boots for Luminosity. I personally feel like her cds are low enough that this isn't necessary, and she makes good use of the magic pen.
You can pull off some fancy trick-shots with Q if you shoot it, then ult laterally to your orb. This lets you shoot the orb in a V pattern, and if done properly you can get some nice clutch kills this way. In-game example: I was chasing a Nasus and knew he entered a side-lane bush to recall. I didn't know where exactly he was, I was running out of time before his recall finished, and I wasn't lined up correctly to ensure the orb could travel through the entire bush. So, I threw the orb toward one end of the bush, then used my ult jump to get into the opposite end. This forced the orb's return trip to go through the entire bush, hitting him and cancelling his recall just in time for me to get the kill.
Lastly, remember that her skillshots and her ult goes through walls. This can put you in very interesting situations. For example, Charm is kinda silly if you land it through a wall. The enemy can't walk straight toward you, so they'll walk around the wall to get to you however they can. You can use this to your advantage to drag an opponent toward gank bushes from odd angles.