Current Limiting Resistors are a must
The ULN2803 will allow more current to the LEDs that the PIC can not provide. You should have at least 500 ma to an 1 amp or more for your power supply. The resistors are current limiting resistors and they are only for the LEDs.
LED's will always need current limiting resistors added to them. The lower the value the brighter they will make the LED's appear. However, they also protect the LED's (make them last longer - no burn out) by using higher values like 220 or 470 ohms. I tend to make some sort of allowance and use 10 ohm (probably asking for trouble) to 100 ohm (little more safe) on every collumn or row.
I personnally believe that you only need to have a current limiting resistor for either every column or every row but you don't necessarily need to have them for both. So if you have 8 rows and 16 columns, I would put them on each of the 16 columns (to be safe) as there are more columns and more resistance to take in in excessive current / voltage. However, I have seen people use it both columns and rows - which you will probably see dimmer LEDs due also to duty cycle (refreshing rates for the LEDs). I think if you use LEDs with higher MCD ratings for brightness this will help too - but this would probably bring cost up too.
BTW: About LED's needing current limiting resistors, this is generally always the case EXCEPT for custom LED driver IC's which have them internally and use 1 external resistor for adjustment. An example of this would be the MAXIM 7219. The Maxim 7219 works with up to 64 LEDs of individual control and it works well. However, the only problem I have is figuring out how to cascade them in software (haven't quite mastered that yet).
Good luck.