The GPS bit is easy, just listen out for the satellites and you know your position. The hard part is that you then need to send that data over the internet somehow, which is where all of the running costs and sim cards come in. You also need somewhere on the internet to send the data to so that you can see where your car is, which is where all of the apps come in.
I haven't looked into any solutions so I can't really recommend anything, but I would probably want something that's hardwired with the option of sending the data to a custom endpoint so no third party gets my gps coordinates.