If you have an index or listing page, like products, your code maybe like
{exp:channel:entries channel="products" limit="10" orderby="date" sort="desc"}
<div class="pic-wall"><a href=/product/profile/{url_title}"><img src="/images/product/{product_image_file}" alt="{title}"></a></div>
{/exp:channel:entries}
then on your product profile page, you'd want something like
{exp:channel:entries channel="product" limit="1"}
<h2>{title}</h2>
{product_description}
<hr />
{other_fields}
{/exp:channel:entries}
Additionally, you can use the url_title="{segment_3}"
to make sure the record exists, or the if no_results option so that random urls, if generated will result in a 404 call.
The key component is to either use the {url_title}, {entry_id}, {comment_entry_id_auto_path}, or {permalink}. There are a few more options, but they are basically variations of the above for example:
{url_title}
will allow you to custom create the path to the entry like
<a href="{domain}/products/detail/{url_title}" title="{title}">{title}</a>
or you could use {url_title_path}. {url_title_path} assumes you've completed the details in channel profiles, when you were setting things up, so if you said the default path for products was products/details
it will use that, but if you said it was products/index
then it would have the wrong path.
I tend to use the {url_title} because I like the flexibility, one of the other developers I work with prefers using the {url_title_path} option. But both will create a link, so that you can design a template with detail specific fields.
Take a look at http://ellislab.com/expressionengine/user-guide/modules/channel/channel_entries.html#parameters to see all the various parameter options available to you.