While I think you do have to draft with an eye toward team needs, it can't be the sole determining factor. I would not draft the 20th rated player on my board (and I'm not necessarily saying I have Ngata that low) at #8 just because it fills my #1 need! I think you always draft the best prospect available at a moderate or major need position in R1. Always. Between Ngata and Davis, its no contest, I would choose Davis. He's probably the best TE prospect available in years and considering that our TEs are average at best, its not a difficult choice in my mind.
And remember, the Bills still have at least three more picks on the first day of the draft.