What algorithms should I choose for a recommender system and why?
Short answer: 

It depends on your data. What do you want to do ?

Longer answer: 


Use content based approaches if you have data on your items. Use collaborative approaches is you have data on your users. Use both if you have both. I would say content based approaches are general machine learning problems (how do I extract meaningful information from data) whereas collaborative filtering is really a recommender system specific work (how user's behavior can suggest users/items similarity/connections). 
Well you can. Neural nets are just a kind of algorithm, you surely can use them for content based analysis, and it might be possible to use them to enhance your collaborative algorithm. 
NN use texts and images as numerical data, so I don't understand your question. 


If you want a good insight in today's recommender systems, take a look at this article.