A would also suggest "go with what you know". If you are familiar with a certain MCU then that is generally the best one to go for (as long as it will meet your project requirements). Although different MCUs are similar in design and programming, the subtle differences can be a pain (and time consuming) for small projects.
For simple one-off projects it really doesn't matter too much, and price and speed or IO count advantages of other MCUs mean little to nothing if they are not being used.
PICs are fairly standard and cheap now-days (and simple) if you have little to no prior experience with MCUs.
The easiest way is to look at the data sheets of the two side by side. They are obtainable off the manufacturers website or by an internet search (just include the word 'datasheet' in the search).
Oh, where to begin... I have recently (both current to within days of today) been working with flavors of both.
Your application will factor into it, but I've had some rude awakening to the PIC16 family. (I've been working with the PIC16F886) You get a lot of development software for free from Microchip, but it is still a quirky little instruction set. The registers and memory are in banks, the code space is in pages. If you don't keep track of all that, you will have very strange behavior and bugs. The conditional tests are of the "skip next instruction" variety, which is dicey when combined with the need to often do a bank select prior to an instruction, which forces you to rearrange the skip instruction. If you call or jump to an address on a different page, you'll go to that address on your current page... ick. Plus the single interrupt for all interrupts. I've just started working with the C compiler for it which shields onE from those issues, but creates somewhat bulky code. I've seen buzz that you're better off going to the pic18 or pic24 family and program in C. The pic18 (and up) are designed to be more "C" language friendly. That's probably where I'll be going with that project.
The 8051 has much varied support due to its history and many derivatives. The instruction set seems much saner to me. Also the interrupts are vectored. Multiple registers are a big help too. Of course, there are still banking issues, but not as intrusive as with the midrange PICs. I've been spoiled because I've been using the Altium (formerly BSO/Tasking) C compiler, which is a beauty, but $$$. You can find free compilers of just about any language that will generate code for it though. You have been to www.8052.com, I assume.
For a project of any complexity, I'd think twice before using the PIC16.
Good Answers: