Does the bitcoin transaction fee depend on the number of addresses in the proverbial from field or the number of transactions that led to the balance in the addresses in the from field. eg: I have 10 addresses each containing 1 bitcoin,is it better to send them from where they are to another person or if I transfer all the bitcoins in every address to a single address and then sent the bitcoins from there. I am only talking about the transaction fee in the final send to the other person.
Basically, one or a few number of inputs should make no real difference. But at some point the size of the transaction may grow so big that it will start to get less priority over other ones, because miners may prefer lower-sized transactions to get more transactions fees (assuming they would hit regularly the block size limit).
Anyway the workaround you propose is pointless, moving bitcoins separately from several addresses to one unique address prior of the real transaction would cost you even more. The total size of all the transactions you need for that would exceed the size of a unique direct transaction with several inputs.
BTW, notice that the virtual balance your client shows for each of your “accounts” may not reflect the real repartition as seen by the network for each associated address. (It costs nothing to move virtual amount from one account to the other, but it will also not change the way transactions will be build later by the client).
Bitcoin transaction fee depends on the Client and its settings. The Standard Client charges a minimum fee based on the Transaction size and whether the Transaction appears spammy (quite reasonable), but there are code branches that allow you to send transactions without fees.
As the Standard Client is the most predominant client used today, you have to adhere to its rules if you want your transactions relayed in most cases. However, you can always set the fee higher if you are feeling generous or want to make sure the transaction gets included into a block faster.