How do I allow users to supply a photo/image to be used instead of the grey/white silhouette?

These images are called Avatars. By default, WordPress works with the Gravatar service, which hosts your avatar on one central location so you don’t have to upload it to every site you comment on. It is based on your e-mail address (you see it on action on this site too).

If you want to provide the functionality to load avatar images from your own site you will indeed need to load an extra plugin. Some popular plugins are: