While Reflector is cool - but it's not free.
There is Mono.Cecil - which is a lower level tool that can modify assemblies. The two I now use most often are:
JustDecompile and DotPeek
Question
Is there a tool which allows me to decompile a .net dll, edit it and repack it back to dll again?
I use dotPeek a lot. It can't repack or edit.
Solution
While Reflector is cool - but it's not free.
There is Mono.Cecil - which is a lower level tool that can modify assemblies. The two I now use most often are:
JustDecompile and DotPeek
OTHER TIPS
Reflector is one of a kind. I have successfully created c# projects from binaries and recompiled them.
Bear in mind that protected assemblies are difficult to decompile, also they may be obfuscated or protected against ILDASM.