as a present, you should already know what he/she like since you had been together for a long time, buy him/her things that your buddy like, you should have already know what he,she like. buy him/her that. ok.
first don't miss the flower all of them loves flowers and to it gift card with love quotes, then think of the gift...ex: print her picture (together or alone) on a pillow / puzzle / mug ...if like electronic devices get an iPod and if she already have get any iPod accessories or a watch...accessories, sun glass....
You can bake her something like a cake or some yummy homemade cookies or if you got duct tape laying around in the house you can make various of items. Just look up crafts with duct tape on the web.You'd be surprised on what you can make with tape.If she is a really good friend she would love it :)
Well....you probably know what kind of stuff she likes cause she is your friend so whatever she likes get that for her;) get her some candy from the 99 cent store :P It is the thought that counts right???????
Money may seem impersonal but I think of it as a gift card that can be used anywhere. $20 that has to be spent at a Starbucks is as good to me as 20 Prussian thalers. Always gift cash instead of gift cards.
Make her a coupon book. Coupon - Lunch (in a restaurant if you don't like to cook.) Coupon - A manicure Coupons - etc, etc, etc. You can also buy her a flower or something small. Friendship isn't about things; it's about loving each other
Homemade bracelet, necklace and phone cases are good choices. Once my friend bought gemstones and beads on pandahall.com and make a bracelet out of beads for me, it's really different. A gift made by yourself is more meaningful. As you know, many girl make birthday cakes for their boyfriends. A true friendship is not about money but care and trust.
Honestly, it all depends on her/his personality and their likes or dislikes. If they hated Justin Beiber, you wouldn't get them a JB CD, would you? No. If you really want to show your true friendship to her/him, go to the store and but them a necklace with half of a broken heart on it which says 'best', and you get the other half that says 'friends'. Or the other way around, I guess it really doesn't matter. Write them a letter with everything you can remember that you did together. Then give those to to them and report to me on how it turned out! ;)
You should make her something and put a lot of handmade little things in one basket or bag because it's more personalized and takes effort rather than buying something. But you could still buy little things like nail polish or a cute bracelet or something. And maybe write her something about how great of a friend she's been or draw her a picture, whatever you want really. :)