@haken: Quite a bit depends on the terms of your agreement with them.
If you’ve agreed that you retain copyright in your work (which is not usually the case in work for hire), then you get to determine what happens with the DLL. This means that if they want to see the source code, you can put a license on it that says “You can use this in-house but not give it to anybody else.” This also applies if you wrote the DLL before your relationship with this company or independently of it—but if you go that route, you should really work with a good intellectual property lawyer to get the license correctly written.
You say “I’m pretty sure they’re planning on using someone else.” So what they want is to get the code of your DLL, so that they can give it to someone else to work with? My response to that would be, “I’m sorry, but that library of code is one of my competitive advantages, and so I won’t give it out for free. If you’d like to license it, I’m sure we could come to a reasonable understanding.”
Because, frankly, the main reasonable reason most companies would want to have copies of everything is business continuity in the case that you get hit by a bus. But this would be expressed by a desire for full source code upon delivery of the project, or by insisting on some source code escrow service, not by getting a copy of source at the inception of a project.