Decantarte por un programador u otro depende también de si lo quieres por puerto serie,paralelo o usb.
Los que van por puerto serie suelen ser sencillitos y con pocos componentes,aunque también son los que más limitaciones tienen.Un ejemplo es el TE20.Yo tengo uno y marcha bien con una gran parte de la gamas de pics 16F y 18F,incluyendo muchos modelos que cuentan con conversores AD (16F876 por ejemplo).
Los que van por puerto paralelo son mas fiables,rápidos y soportan más cantidad de modelos de pic.Uno de este tipo es el gtp,desarrollado por un compañero de este foro.
Por último están los que se conectan al pc a través del usb,y a mi parecer son los que mas prestaciones dan,aunque claro,son más complejos y salen algo más caros en cuanto a componentes se refiere.El mejor de los mejores es el gtp-usb,también desarrollado por uno de los foristas.
Si haces un poco de búsqueda por el subforo de programadores encontrarás referencias sobre todos estos y sobre unos cuantos más.
Si especificas que pic vas a usar en tu proyecto,se te podrá aconsejar mejor sobre qué programador te puede venir bien.