As implicit by M. George comment, the Hough transform is very good for LINE (or other parametric forms like circles, ellipses, known templates, etc.) detection, not general edges which will depend on the objects contours and will in general be locally curved.
One example of a good application of the Hough transform would be to find the vanishing points in a building image based on the lines detected by the building edges, windows, etc.
prewitt, Canny and sobel edge detection method is better than hough transform. Canny's output are much better than sobel & prewitt, but performance degraded.
Here you can find the matlab implementation of canny edge detector.
Canny edge detection method is better than other edge detection. But, in recent years diffusion based edge detection is very popular. So, better you go with Anisotropic diffusion based edge detection (example: Perona - Malik diffusion method).
Note: Perona- Malik method can be utilizing in image noise removal also.