I would recommend you to try out all and see which one works better in your case. I had to do it once and I applied edge enhancement algorithms before using edge detection. In the following paperhttp://staff.science.uva.nl/~rein/nldiffusionweb/ named nldiffusioncode.pdf you can read about three algorithms they developed. The code is free and the link is matlab.zip. I could not find the actual webpage.
I also usedadapthisteq function from matlab to enhance contrast before before edge enhancement and detection