It's called rtk correction: http://en.wikipedia.org/wiki/Real_Time_Kinematic
There's an opensource rtklib which supports a handful of inexpensive receivers: http://gpspp.sakura.ne.jp/rtklib/rtklib.htm
There's an opensource rtklib which supports a handful of inexpensive receivers: http://gpspp.sakura.ne.jp/rtklib/rtklib.htm
You also need either a lot of storage locally or a fast data link between the base station and the rover - phones actually have both of these but they cost money
So, $0.50 instead of $0.01? :)