I agree with Scote on improvements.
To get better materials you need to find or make bigger resolution textures (or make them seamless so you can tile them). You should look into combining different textures. In 3dsmax there is for example compositemap, where you can layer different textures (much like in Photshop). That way you can put for a base a seamless asphalt texture and to cover tiling you can then put in some more textures (blending mode Multiply works quite good). This is often used technique- some textures for smaller details and some for larger-scale grunge and dirt.
First tutorial on subject I found is https://www.youtube.com/watch?v=mhom5CTFlRs . Not the best maybe, but should show basic workflow (even if you are not using 3dsmax).
The next thing for materials would be AO for dirt on corners and edges. There is a very good tutorial for this in vray- http://www.peterguthrie.net/blog/2009/10/vray-dirt-tutorial . I think similar approuch should be possible in most renderers (sorry, I cant find what you are using). Controlling dirt radius with a map gives really nice results.
PS. I have seen some excellent artists saying they are not pushing one project endless times around. They try to do their best and live with the results so they can move on for the next one with a little bit more knowledge. There is of course different philosophies, but I think this works for many as this way you dont get tired and bored with constantly changing the same project over and over again.
This is also a note for self- I have some unfinished projects because of trying to improve the same project too long. I think I could have learned more doing 2 finished projects instead of 100 times changing (“improve”) and not finishing in the end. (Im really not trying to stop you improving this project).
Sorry for the wall of text.