Some terminology first: la is not a function, it's an instruction. Actually it's a pseudo-instruction, meaning that it doesn't actually exist in the MIPS instruction set, and the assembler will translate it into one or more MIPS instructions for you.
Now, la doesn't really have anything to do with the .data section. Its purpose is simply to load the address of some symbol into a register. So it's perfectly legal to do this:
.text
main:
la $t0,main # load the address of main into $t0
However, if you intend to write to the address you got with la you typically want that address to be somewhere in a writable section of your program, like .data or .bss.
have the user enter a string in the .data part so that I can use a load address to retrieve that string the user entered?
You only need to re-load the address if the register that contains it gets overwritten. If you read the documentation for the MARS system calls you'll see that it says:
MIPS register contents are not affected by a system call, except for result registers as specified in the table below.
And the read_string syscall has no result, so it's perfectly fine to do:
.data
foo: .space 32
.text
main:
la $a0,foo
li $a1,32
li $v0,8
syscall # read_string
# $a0 still contains the address of foo here
li $v0,4
syscall # print_string