choosing the best uc for your application depends on allot of things
-max power usage your application allows
(use MSP430 and derivates, Xemics for ultra low power systems)
(8051 is a Risc and consumes allot of power, although there are ...)
-availability and cost
(AVR's and PICs are pretty powerfull things but cost allot, that might be some overkill for some applications) Normally most types can be delivered in large quantities (100k or more) but you should check this if required!! Also don't choose an "end of life" uC because this could cause the obvious problem that you cannot buy them any more when your design is finished.
-designtime
when everybody in your company has experiance with AVR it might be better not to choose an PIC. Then you can ask ppl in your company. Also most of the time mainstream uC (8051, AVR, PIC, motorola's, ...)have better compilers (also free ports from gcc)
-"numbers of counters, hardware multiplier"
depends on what you're using it for! When you need raw computing power, you'd better choose a DSP. Otherwise an simple uC is good.
Memory is a bigger issue for uC. Programmemory is most of the time sufficient (you can get a big application in a 16k uC) Ram might be a problem, depending how you use it and how much is available.
and then there are some other issues like
Do you want to be able to reprogram or is it a final version of the code
Do you need In Circuit Programmability
Do you want to be able to write a bootloader (self programming should be possible)
Do you need UART, USB, Ethernet, I2C, ...
Do you need hardware timers
Do you need a watchdog (I'd say yes ;-) )
And i'm sure there are allot more issues
Choosing the correct uC isn't a simple problem ;-)
good luck
Antharax