in reply to
Does any know of any good ... web-sites that define these documents
A good site to see *real* as opposed to theoretical software engineering is www.joelonsoftware.com. There is enough good information for you to put aside the fact that Joel is an ex-microsofty ;)
What are functional and technical design specifications?
you can read more about specifications here (1. why, 2. what, 3. how, 4. tips) but this is where it gets a bit murky. Specifications mandated by traditional software engineering work well for large teams working on *certain types* of projects - (Joel was product manager for MS Excel embedded language specification - VBA) But these techniques are not as efficeint for small teams whose deliverables may not be shrink-wrapped.
what about anti-specifications?
Extreme programming on the other hand is a light weight development process that avoids some of the pitfalls of *documented specifications* especially where you are developing in small teams (1 >= member <= 30) where rapidly changing *business, technical and functional* requirements are the norm for a non shrink wrap market.
So ask yourself what type of development will I be working with (large, small). What type of product will I be releasing (throw-away, internal, embedded, shrink wrapped?). Then check out the various different approaches to specification requirements in the links above.