Ok I have em all so :
Get the home patrol if you are unable to program and like neat displays,sensitive but not over sensitive,scans kind of slow,Like yawn slow.Has beeps for fire and police sorting.
Get the 996XT uniden if you want an all around good scanner with decent reception or live in a city.
Less intermod than a GRE,less sensitive than a GRE,scan is middle of the road fast.The 396XT is his cousin for poratble op. Oh yeah cool color displays to indicate this is FIRE or POLICE
Get the GRE or Radio Shack Pro-197 if you need awesome sensitivity and like to search for new frequencies and want it to scan fast The 106 is just his portable cousin,has a LED for FIRE and Police sorting.
I say mold em all together with a signal squelch and a way to mute fire tones and SQUAWKS.
I use the "cool"
speaker to determine if something is fire or police.
The real answer is it depends on what you're needing to do. The HomePatrol is all-around outstanding but largely misunderstood by people who have an expectation that their scanner has a certain shape, has a physical keypad, and has numbers that race across the screen for every channel you're scanning. The HP is not slow; it might appear that way if all you watch is the system line (which changes much slower than the frequencies do on a "regular" scanner). The recording capabilities alone make this an awesome radio, but add in the analysis features (trunk analyzer, band scope, LCN sorter, etc) and it lands at the top of the heap.
The Uniden 996XT/396XT radios have a lot going for them, and a few things that are lacking too. You can program large trunk systems that have dozens of sites, and have GPS connected to allow the scanner to switch these sites (or other systems) on and off as necessary. On the other hand, the Uniden scanners will tune in to a trunk control channel if it can hear it, regardless if it's the strongest one near to you. This results in oftentimes getting weak, scratchy audio when your radio locks on to a distant tower. There's also the problems with simulcast systems, which look to be cleared up soon according to the firmware announcement that's been uncovered recently.
GRE radios (including those made with different names for Radio Shack) use a completely different method to load the data into them, going with the "object oriented programming" where every item in the scanner is an object whether it's a frequency, a talkgroup, or a system definition. Each one of these is able to be "tagged" into a scan list, meaning that instead of having a scanlist that has an entire system in it like you would the Uniden radio, you can have a scanlist that has portions of multiple systems (various talkgroups only), conventional frequencies, search ranges, etc., all in one segregated group. GRE also seems to do multi-site trunking better, gauging the strongest site you can receive and internally managing it. However, GRE radios can only take 32 frequencies in their trunk system definitions, period - so for those of us who want to monitor large trunk systems that have more than 32 unique frequencies across the system, these radios aren't ideal. GRE also reportedly has a better decode on P25 comms (quicker to decode) and can display P25 conventional data (like talkgroups and radio IDs) without having to make quasi-trunk systems like the Uniden radios do. For those of us who do a lot of trunk system analysis, the on-screen analysis on the GRE radios is limited, and both GRE and Uniden radios have documented problems with their decoding capabilities overall (but in general do fairly well).
So as I said, each radio has its positives and negatives, and it really depends on what you're looking to do to determine what you think is best. I have quite a few scanners: The HomePatrol is running at the top of the stack doing regular "scanner" duty; the PSR-600 (PRO-197 cousin) is beneath it doing control channel analysis of the local P25 system; a beat-up old Uniden BC796D is beneath that feeding 144.390 into my computer for ham APRS duty, and the BCD996T (with a BCD996XT on the way to replace it) is below that doing some other logging of that same local P25 system.