I was told that when you are ordering food you can say either 带走 or 打包.
However, when you are not ordering food and you mean "take this away", then you use 拿走。
Is there a difference in context or meaning between 带走 and 打包?
I agree with coolcfan. In my experience (Beijing), 带走 means take away or take out. 打包 means you want a doggy bag.
Update: As a result of further observation, I've found that both 带走 and 打包 mean take away. However, if you want a doggy bag you would probably say 打包.
带走 or 打包 and 拿走 refer to the degree of care required regarding your "takeaway."
带走 (carrying away) or 打包 (wrap it up) means, "I'm taking this home, please treat it with care."
拿走 means "get rid of it." (I don't care how you treat it.)
So far as I know, the difference is simply a matter of region. In my experience 打包 is more common in central and southern China, and 带走 is more common in the north.
They are interchangeable however, and I personally don't know any situations where one is different from the other.
Hope that helps!
打包 is a necessary condition of 带走, unless you like to put your remnant food into your pocket:p
As a native speaker and Chinese teacher, I would say 带走 and 打包 are interchangeable. Usually after a meal in a Chinese restaurant, it is appropriate to either say 不好意思,我要带走 （Excuse me, I'd like to take leftover to go）or 请帮我打包 （Please wrap the leftover up for me）
You should use 走街 in hk. Once i said 打包 and the woman got upset with me. It means wrapping the dead in hk, don't use it under any circumstances unless you want to make the person upset.