Addition: After explaining that this is practically impossible, I found that there is a commercial product that claims to do this. A company named Lugloc (the new 3G version is called GEGO) makes a tracking device especially for luggage (there’s also a bag by Delsey that uses their technology). I haven’t seen or tested it, but it is probably the closest you’ll currently get. According to their product description it uses GPS and a SIM card. There is a monthly fee.
Original Answer:
gerrit's answer is already great, but I thought I'd explore a bit what the constraints on such a device would be. If you want a device, there are four main things that need to be solved:
- Getting the position
- Communicating the position back home
- Power
- Regulatory
Getting a position
As you already pointed out, GPS is pretty precise but needs a satellite signal, which can be blocked by buildings. It can also take a long time to acquire the signal - and your bag will almost always be inside.
Your mobile phone therefore uses a form of assisted GPS which uses cell tower information, and also WiFi positioning. These methods work somewhat reliably inside and are probably the best way to track a bag that is inside most of the time. However this requires multiple receivers, an internal database and some computing power.
Assisted GPS will work well if your bag is in an airport or other hub, where there are plenty of WiFi networks around. It will do much worse in bag sorting facility that is underground and behind thick concrete walls.
There is no method to get a position while in flight: Your bag will inside a metal container, which is inside a metal tube, which is pretty good shielding for any satellite signal. The plane will also often be out of reach from any cell towers. Tracking may work in land vehicles, but your bag still isn't going to get a window seat with great reception...
Communication
For sending the position home, you have essentially two options: The mobile phone network or a satellite network. As gerrit pointed out, satellites for communications are blocked as easily as those for GPS. The phone network is your best bet, even if it isn't available everywhere. You can't use WiFi networks, even if they are available, as your device wouldn't know how to connect.
Power
So far, the ideal device would be your mobile phone plus special software. But with that, the battery would run out quickly. GPS receivers are a huge power drain, as is any form of wireless communication.
Usually such a tracking device will only power up every once in a while in order to conserve power. Still you'd need specialized device with a fair-sized battery, and it would probably only check in every hour or so.
Regulations
If you want your bag to ride on an airplane, you'd have to take regulations into account. While it is perfectly legal to operate GPS (which is only a receiver), you are not allowed to operate any transmission equipment on an airplane - so at the very least your device has to somehow detect that it is inside an aircraft and turn itself off for the duration of the flight.
Batteries are generally okay. Still, though I don't know of any specific regulations, airlines might also complain about the fact that there is some device that is actively using a LiIon cell during flight (Lithium-Ion batteries are the ones used in cell phones and the like. They can cause nasty fires, and it is more likely that they go bad during use than when the device is switched off).
Available devices today
Most GPS trackers that you can buy are made for a different scenario: They are supposed to be mounted in a place with good reception and cell phone signal -- not to be shoved in a bag that is then put in all kinds of places and shipped around the world.
There are some "passive" beacons (NFC chips) that can be picked up by smart phones nearby. The idea with those is that if it gets near a phone with the app installed, that app will send the position back to the owner. As those apps are not that widespread, it doesn't work that well.
You best bet, at least for air travel, would be to get access to the airline's tracking system. While it might not be 100% reliable, it would allow you to check where your bag tag was last scanned; and it would probably work better in many cases than an "independent" solution.