The wiki has a long list of "*[community layers][7]*". We cannot display them on the main website because of resource requirements. Many of them are hosted on private servers. Exposing them to all visitors would surely exceed their traffic limit and other resources.
If you want to create your own layer then it depends on what you want to achieve.
How to render your own [tiles][1] is described on [switch2osm][2]. This step is only necessary if you want to change the *style* of the tiles. [TileMill][3] is another approach for rendering your own tiles, among [many many others][4].
If you are instead just interested in adding a custom *overlay*, then go for [Leaflet][5] or [OpenLayers][6]. These libraries allow you to add markers, photos, polygons, popups, GPX/KML/* GPX/KML/... tracks and similar things *on top* of already existing tiles.
[1]: https://wiki.openstreetmap.org/wiki/Tiles
[2]: http://switch2osm.org/serving-tiles/
[3]: http://wiki.openstreetmap.org/wiki/TileMill
[4]: https://wiki.openstreetmap.org/wiki/Rendering
[5]: http://leafletjs.com/
[6]: http://openlayers.org/
[7]: http://wiki.openstreetmap.org/wiki/List_of_OSM_based_Services