Yeah, the index.html (or index.htm) needs to be an HTML file rather than a folder with stuff in it. When it's in your public_html folder, then that file (index.htm) becomes your home page.
The same principle applies to all your folders: any folder that doesn't have an index.html page will display that same type of "directory listing" view that you now see when you go to your site. So it's good practice to give the primary file in each subfolder the name "index.htm". That way, if someone navigates directly to that folder, they'll get that index page rather than the directory listing view.
Note that your index.htm (or html) page must be a real HTML page, your home page, containing links to your other pages. If it's a blank file, people who go to your site will only see a blank screen, even worse than the directory view!
In case there's any confusion (there was for me the first time I saw one), that directory listing view isn't any sort of an error page. It's just an alternative way to display your website. If your site just consists of files and folders that you want users to navigate and browse around in, then that's one way to do it, and it relieves you of the burden of creating pages with hyperlinks and such. But it's pretty bare-bones, and most people want to present their site in a more creative way.
--------
It should be a file. Not sure what you mean. Can you elaborate?
The index.html on Bill10D's site shows as index.html/, a folder (with some files in it, too), rather than a file itself.