This may be a silly question, but when do Turing Machines have final states exactly?
I see some with final states and some without, I'm a little confused right now.
It depends on how you're defining Turing Machines - these are theoretical things where the definitions can vary based on what conventions you like to adopt - but you can think of a Turing machine as having accepting states like, e.g., DFAs and PDAs, or as having two fixed states named "halt accept" and "halt reject". I have found the latter to be more typical but there is nothing startling about the other.
TMs accepting by accepting state: the only way I see this as being a completely general and simple convention is that the TM accepts any input which causes the TM to crash in an accepting state. Crashing a TM means entering a configuration for which no transition is defined. Otherwise, if the TM crashes in state that is not accepting or keeps transitioning forever without crashing, the string is not accepted.
TMs accepting by halting: this is what I am more used to seeing. Here, TMs are understood to have special, distinguished states halt_accept and halt_reject. Any TM entering halt_accept stops execution gracefully and accepts the input. Any TM entering halt_reject stops execution gracefully and rejects the input. Inputs that cause the TM to crash are always interpreted as being rejected, as are inputs that cause the TM to transition forever.
If you are looking for a convention to adopt, I definitely recommend the latter as more typical. However, the former should generally be understood from context.