Just stumbled across a bit of a gotcha when using a custom tiles layer on a leaflet map. After a lot of head-scratching, I found the solution. Leaflet.js version here is 0.7.3.
L.TileLayer appears to have a default maxZoom of 18, and it doesn’t inherit the maxZoom of the map, so you need to explicitly set the minZoom and maxZoom on the TileLayer itself.
Example: http://jsfiddle.net/benmarsh/pvanwc1t/ – try zooming in, and you’ll see the tiles don’t render, then uncomment the minZoom/maxZoom lines on the TileLayer and it works.