RelatedTo with users
You can just use:

{% for entry in craft.entries.section('downloads').relatedTo(currentUser) %}
    {{ entry.title }}
{% endif %}


This is essentially returning an ElementCriteriaModel of reverse related entries sorted by entry date by default. You can also access the related entries through the field itself:

{% for entry in currentUser.selectDownloads %}
    {{ entry.title }}
{% endif %}


This will loop through the related entries in the order they are sorted in the CP.

But to answer your other questions. sourceElement and targetElement can be elements of any element type: entry, category, asset, user, globalSet, tag, etc are all elements. sourceElement simply refers to which is the source of the relationship; and targetElement is what it's related to. field further specifies that you only want to match a specific field rather than using any relationship defined in any field (if you have 2 or more entries fields defined in a channel that are used for different purposes for example).