Let me try to explain the concept of an index. This explanation is not SQL Server specific, and I'm perhaps over simplifying things a bit. However, it may help you get an idea why an index is useful.
Assume you store simple records consisting of an ID and a name. Data are stored in rows where the first column (#) is a record number or an address enabling us to point to a particular row.
# Id Name
------------
0 1 Lorem
1 2 Ipsum
2 3 Dolor
3 5 Sit
4 6 Amet
Assume that you want to find a the row having a specific name, say "Sit". The only way you can find it is by scanning the entire table looking for that particular name. Doing that on a big table is time consuming.
To solve that problem you can create an index on the Name column. An index is like a table:
Name #
--------
Amet 4
Dolor 2
Ipsum 1
Lorem 0
Sit 3
Note that the names are sorted which makes it easier to search for a particular name. Finding a name no longer requires a complete table scan but can instead be speeded up by searching the index. When the name is found the corresponding record number can be looked up and the associated record can be retrieved. Often the index will use a balanced tree which makes it quite efficient to search.
To sum up, search is faster if you have an index but you will have to maintain an additional data structure that consumes spaces and requires updating when the underlying table is modified.
A clustered index is a special index that defines how the table is stored. Having an clustered index on the Id column will ensure that the rows in the table are ordered by ID. You don't need an additional index data structure to maintain this index. The index is already defined by how the table is stored.